Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next Gen Event Engine #31

Open
codeliner opened this issue Feb 18, 2021 · 0 comments
Open

Next Gen Event Engine #31

codeliner opened this issue Feb 18, 2021 · 0 comments

Comments

@codeliner
Copy link
Contributor

codeliner commented Feb 18, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant