Getting started with Eventuate Local

Welcome to the Eventuate Local platform. This guide will enable you to write your first event sourcing-based application using Eventuate Local.

Before you begin

If you haven’t already, please read:

API documentation

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. It 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
  • Snapshot strategies that create snapshots, which optimize the loading of 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.

Defining snapshot strategies (Eventuate Local only)

A snapshot strategy is given the opportunity to create a snapshot when an aggregate is updated.

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

You must configure the Spring Application context which instantiates your application components along with the Eventuate client components.

Configuring Docker to run the Eventuate Local services

If you are running Eventuate Local, you must configure Docker to run the Eventuate Local services.

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