Introduction License Installation Documentation FAQ Privacy Policy Code of Conduct Contributor Guide White Papers Contact Us

Eventz: Event sourcing Microservices Infrastructure in Python

Eventz is an open source python framework for developing and deploying microservices.

Microservice architectures have great promise for developing and deploying solutions that are loosely coupled and coherent. They also can be daunting to implement and deploy. Eventz is a framework that provides an infrastructure that makes this process considerably easier.

Eventz has several components:

Figure 1 below shows an overview of the components and how they interact.

fig-1

Every application models some activity. These activities generate events. It is these events that are published and subscribed to by the microservices. This constitutes the sole means of communication between microservices.

One or more Archivist services subscribe to all events and put them in indelible data store(s). Librarian services provide the ability to query a data store and return a result set containing the requested events. This provides data persistence to the microservices.

For fast response each microservice can have it's own local archive that contains the events that the service subscribes to.

Event records are published and stored in a defined format. The record begins with a record type identifier followed by metadata that provides information about the record. Following the metadata is the payload of data generated by the event. The message is an ascii encoded tuple.

A range of record types (900000000.00 to 999999999.99) is reserved for system messages. System messages provide a way to report errors, ping services etc.) System messages are handled by the API.