  A considerable volume of data is collected from sensors today and needs to be
processed in real time. Complex Event Processing (CEP) is one of the most
important techniques developed for this purpose. In CEP, each new sensor
measurement is considered an event and new event types can be defined based on
other events occurrence. There exists several open-source CEP implementations
currently available, but all of them use orchestration to distribute event
processing. This kind of architectural organization may harm system resilience,
since it relies on a central core (i.e. the orchestrator). Any failures in the
core might impact the whole system. Moreover, the core can become a bottleneck
on system performance. In this work, a choreography-based microservices
architecture is proposed for distributed CEP, in order to benefit from the low
coupling and greater horizontal scalability this kind of architecture provides.
