Note

This is the documentation for the old Java client. See here for the new Java client.

Getting started with the Eventuate platform

Welcome to the Eventuate platform. This guide will enable you to write your first application using the Eventuate client framework.

Before you begin

If you haven’t already, please read:

Example applications

If you haven’t already take a look at the example applications.

Project setup

Defining events

Events are the life blood of an event-driven application. To learn more about defining Java events, click below.

Developing command-side modules

A command-side module processes update requests such as HTTP POSTs, PUTs, and DELETEs. A command-side module consists of the following components:

  • Aggregates and their associated commands
  • Services, which create and update aggregates
  • Event handlers, which subscribe to events and respond by creating and updating aggregates

Defining commands

Defining aggregates

Writing services

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.

Defining event handlers

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.

Developing query-side modules

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.

Writing outbound gateway modules

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.

Configuring the Spring application context

The final step is to define the Spring Application context which instantiates your application components along with the Eventuate client components.


Stay in touch
Copyright © 2021 Eventuate, Inc • All rights reserved.