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.
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. A command-side module 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 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.
The final step is to define the Spring Application context which instantiates your application components along with the Eventuate client components.