
Message::passing::zeromq is a zeromq transport for message::passing.
designed for use as a log transport and aggregation mechanism for perl applications, allowing you to aggregate structured and non-structured log messages across the network in a non-blocking manner.
clients (i.e. users of the message::passing::output::zeromq class) connect to a server (i.e. a user of the message::passing::input::zeromq class) via zeromq's pub/sub sockets. these are setup to be lossy and non-blocking, meaning that if the log-receiver process is down or slow, then the application will queue a small (and configurable) amount of logs on its side, and after that log messages will be dropped.
whilst throwing away log messages isn't a good thing to do, or something that you want to happen regularly, in many (especially web application) contexts, network logging being a single point of failure is not acceptable from a reliability and graceful degradation standpoint.
the application grinding to a halt as a non-essential centralised resource is unavailable (e.g. the log aggregation server) is significantly less acceptable than the loss of non-essential logging data.