Cozmic.io Architecture

Delivering High-Speed Analytics And Actions For Any Data

Cozmic.io is a platform and framework that allows you to receive or collect data, analyze it and at upon it in real-time. Some usage scenarios would include near real-time analysis of credit card transactions, analyzing data streams from biometric or home monitoring networks, or even something like blackbox or voice data from the next generation of cloud-enabled flight data records.Cozmic.io combines data flow management and data analysis in a reliable, high performance platform that is easy to setup and begin using. Shared memory can be used to accumulate event data or store reference data so that the analytical process may use a ‘look back on previous results or patterns as component of itself.

In a simple implementation, a developer only needs to concern themselves with the logic of processing the data. This is accomplished by writing the “Precepts” or rules for analyzing and acting on the data and if necessary writing the analysis components that suits their need. The platform can deployed as a cloud-based service that allows a high level of parallelization and the ability to run multiple versions of an application side-by-side, or it could be deployed on a dedicated appliance optimized for network connectivity and real-time analysis of data from private device networks.

 
 

Channels

Channels are data pipelines from a variety of sources (devices, APIs, messaging systems, push or pull). A Channel can be configured to retrieve or receive data from a source. A Channel and its interface can be created dynamically (drop in a new config file at runtime).


Emanators

An Emanator provides a robust and scalable virtual distribution point that serializes messages forwarded by Channels then distributes them to registered Conduits.


Conduits

A Conduit is a connection to Minder in a Plane that delivers serialized messages and knows how to read and write to a disruptor ring buffer.


Minders

A Minder receives data from a Conduit and follows the assigned Precept. The Minder follows a form of the Disruptor pattern. Incoming Minder messages are placed in Ring Buffer (disruptor) to be processed and the Precept Manager determines how the messages should be removed from the Ring Buffer and processed. The disruptor pattern allows messages to be quickly re-requested and sent in batches if processing is interrupted or slowed. This also allows for a high degree of parallelization of processing data for preparation or by Implements.


Precepts


Implements


Planes

A Plane is essentially a different version of your application or application data that can process the same Channel data as other Planes. The purpose of a plane is to be able to test different versions of an application with the same real-time data. This could be used for testing upgrades, or creating multiple ‘realities’ of how data is processed and responded to.