This guide gives an overview of the concepts which form the foundation of Sequent. Most of these concepts are not specific to Sequent, but applicable to all CQRS and event sourced applications.

Basic flow

To illustrate the basic flow of an Sequent powered application let’s use creating a User from a webapplication as example:

  1. Webapp binds form elements to a CreateUser Command
  2. Webapp passes the Command to the CommandService
  3. The CommandService validates the Command
  4. When the Command is valid the CommandService calls the registered CommandHandlers
  5. The CommandHandler creates the User as AggregateRoot and stores it in the EventStore using the AggregateRepository
  6. When the CommandHandler is finished the CommandService queries all affected AggregateRoots for new Event and stores them in the EventStore
  7. All Events are propagated to registered Projectors
  8. The Projectors update their Projections accordingly.

Good to know: Points 1,2,5,8 are the steps you as programmer need to implement. Sequent takes case of the rest.

This is basically how you do stuff in Sequent. Please checkout all concepts to get a complete overview.

Concepts regarding your Domain:

Concepts mostly used by clients, like a webapp, of your application

In depth details