NAME
Data::Chronicle::Subscriber - Provides callback subscriptions to an efficient data storage for volatile and time-based data
DESCRIPTION
This module contains helper methods which can be used to store and retrieve information on an efficient storage with below properties:
- Timeliness
-
It is assumed that data to be stored are time-based meaning they change over time and the latest version is most important for us.
- Efficient
-
The module uses Redis cache to provide efficient data storage and retrieval.
- Persistent
-
In addition to caching every incoming data, it is also stored in PostgreSQL for future retrieval.
- Transparent
-
This modules hides all the internal details including distribution, caching, and database structure from the developer. He only needs to call a method to save data and another method to retrieve it. All the underlying complexities are handled by the module.
EXAMPLE
my $d = get_some_log_data();
my $chronicle_w = Data::Chronicle::Writer->new(
cache_writer => $writer,
dbic => $dbic,
ttl => 86400,
publish_on_set => 1);
my $chronicle_s = Data::Chronicle::Subscriber->new(
cache_reader => $subscriber);
#subscribe to changes to syslog
$chronicle_s->subscribe("log_files", "syslog", sub { print 'Hello World' });
#store data into Chronicle - each time we call `set` it will also call
#the stored subroutine
$chronicle_w->set("log_files", "syslog", $d);
#unsubscribe to changes to syslog
$chronicle_s->unsubscribe("log_files", "syslog");
METHODS
cache_subscriber
cache_subscriber should be an instance of RedisDB.
subscribe
Example:
$chronicle_writer->subscribe("category1", "name1", $code_ref);
unsubscribe
Example:
$chronicle_writer->unsubscribe("category1", "name1");
AUTHOR
Binary.com, <support at binary.com>
BUGS
Please report any bugs or feature requests to bug-data-chronicle at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-Chronicle. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Data::Chronicle::Subscriber
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN