In this posting I would like to go back to the nodes in EPN and discuss why do we need multiple nodes and what are these nodes. One version is that there is a single type of node called EPA -- event processing agent, but my preference is to have multiple nodes, since they have different roles. Here are the types of nodes in our EPN model:
- Event Processing Agent (EPA): a node that gets one or more events as an input and produces one or more event as an output.
- Event producer: An entry point to the event processing system that emits events to the EPN.
- Event consumer: An exit point from the event processing system that receives events from the event processing system
- Event channel: A node that make routing decisions within the EPN, I have recently discussed event channels in this Blog.
- Global states: This is a node that holds various type of state (reference data, global variables)
- EPN node: An EPA can represent an EPN, and thus make the EPN recursive.
Christoph Emmesberger, whom I met in Trento, has proposed to extend the notion of channel to provide aggregation and filtering, this idea is rooted in pub/sub systems where event processing seems as an extension of some event processing functionality. However, when we deal with event processing system, I prefer to make a clear distinction between event processing agents that is doing -- filtering, aggregation, transformation and event pattern detection , and leave channel as a routing mechanism. thus we'll ensure proper separation of concerns, and have a cleaner model. We are now finishing the chapter about pattern detection, and I'll write about patterns soon.