Concept of clients

The core sequencer only takes care of passing messages between clients and delivering messages at the right time to the right client. All processing has to be done within the clients. Because of this separation of responsibility the sequencer can be optimized for it's main task: sequencing events. All (complex) processing is left to be done by the clients.

This approach results in a modular configuration in which the clients of which a service is needed can be loaded. Other clients that are not needed do not have to be activated.

Two types of clients are supported:

It's up to the client developer where to place his or her client: in or outside the kernel. The right place depends on the needs of the specific client.

Using this client architecture we get a few advantages:

Sample applications of clients to get a feeling of the flexibility of this architecture: