Welcome to the Eventuate platform. This guide will enable you to write your first application using the Eventuate client framework.
If you haven’t already, please read:
If you haven’t already take a look at the example applications.
Note: most but not all applications support Eventuate Local.
Events are the life blood of an event-driven application. To learn more about defining Java events, click below.
A command-side module processes update requests such as HTTP POSTs, PUTs, and DELETEs. It consists of the following components:
Services are responsible for handling each external request (for example, an HTTP request) by either creating a new aggregate or updating an existing one. Services are typically invoked by presentation layer components such as Spring MVC controllers or by integration frameworks such as Spring Integration.
A command-side event handler subscribes to one or more event types. It processes each event by updating an existing aggregate or creating a new one.
A snapshot strategy is given the opportunity to create a snapshot when an aggregate is updated.
A query-side module maintains a materialized view of command-side aggregates. It has one or more event handlers that subscribe to events published by command-side aggregates. The event handlers process each event by updating the view.
Some applications must invoke external services in response to events published by the command-side. For example, an application might send an order confirmation as an email message via SMTP or a text message via Twilio. To invoke an external service, you need to define an Outbound Gateway module.
You must configure the Spring Application context which instantiates your application components along with the Eventuate client components.
If you are running Eventuate Local, you must configure Docker to run the Eventuate Local services.