Skip to content

Next Gen Event Engine #31

Open
Open
@codeliner

Description

@codeliner

I'd like to start a discussion around next generation of Event Engine. I start with a summary of What, followed by details about the Why

What

Next version of Event Engine should be a collection of small libraries focused on different aspects of event-driven architecture, optimized for usage in cloud environments with a strong focus on serverless. Rapid Application Development will no longer be achieved by an engine implementation with descriptions and abstractions, but instead will make use of visual modeling in InspectIO and its code generation capabilities.

A project developed with Event Engine could look similar to a monorepo managed with Nx.dev. The monorepo is visualized and organized on an InspectIO Event Map with a connection to a Cody Server sitting in the root of the monorepo.

We will provide a skeleton for the monorepo, InspectIO Metadata Templates, various Cody hooks and also service templates/skeletons for different kinds of EDA services, like a command handling-, query-, projection- and process manager service.
Based on information received from InspectIO the Cody server can automatically install such services into the monorepo and generate all necessary boilerplate code. The services can then be deployed as serverless functions and use cloud infrastructure for storage, communication, etc.

Why

Event Engine was designed to enable Rapid Application Development with full-featured Event Sourcing. Event Engine Descriptions are optimized to reduce boilerplate code as much as possible and act as documentation/overview at the same time. This allows you to develop complex business logic nearly as fast as CRUD logic. But it also has its price. The public API of Event Engine is simple and easy to understand even for devs who never worked with this technology before. But under the hood Event Engine is a complicated beast. Event Engine Flavours offer a lot of customization options, but it is another layer on top of an already heavy layer.
With InspectIO now supporting code generation, we can move descriptions from source code to the Event Map and replace abstractions by code generation so that the generated source code is clean, simple and organized in a very thin layer which is the monorepo itself. This combined with well documented cloud infrastructure is a very powerful combination and should be our focus in the future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions