> For the complete documentation index, see [llms.txt](https://fluxtion.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fluxtion.gitbook.io/docs/concepts/static-event-processor.md).

# Static event processor

The main Fluxtion runtime component explained

The key component generated by Fluxtion is the Static Event Processors(SEP). The SEP is used by a client application at runtime to process streams of events. A SEP has many uses for example producing real-time analytics, acting as an ETL processor, IoT edge processing, trade surveillance, a HFT engine or classifying data as a decision tree. Each SEP has the following characteristics:

* They are lightweight components that do not require a server to run, simply instantiate and call onEvent.
* Manages application objects known as nodes.
* Nodes provide the actual business logic.
* Acts as a dependency injection container for nodes, creating, setting references, properties and calling life-cycle methods on each node.
* All nodes will be initialised before any events are processed.
* Life-cycle methods are invoked on nodes.
* Dispatches events in a predictable order to the managed nodes.

Underneath the SEP is managing the nodes as a graph of dependencies. In the SEP graph there are multiple entry points, execution paths and exit points. The SEP manages the complex dispatch logic between managed nodes during event processing.&#x20;

&#x20;A SEP implements the [EventHandler](https://github.com/v12technology/fluxtion/blob/master/api/src/main/java/com/fluxtion/runtime/lifecycle/EventHandler.java) interface, allowing applications to invoke the well known interface method `onEvent(Event event)`.

&#x20;Fluxtion provides an event stream compiler(ESC) that generates a SEP, after generation the ESC  can be discarded. The compiler may generate multiple source files, such as helper classes, but there will be a single SEP class with which the application integrates. &#x20;

A SEP acts like a dependency injection container, it manages nodes under its control with the following rules:

* Creates instances in a well known order
* Sets references between instances.
* Sets properties on instances.
* Calls life-cycle methods on instances, for initialisation and teardown of the SEP in a predictable order.
