Build serverless event-sourcing microservices in minutes instead of months!
Open-Source & Free to use
Runs in your account (AWS · Azure)
CQRS + ES semantics
GraphQL API & Infrastructure inferred from code
It scaaaaales!!!
Booster is an open-source minimalistic TypeScript framework to build event-sourced services with the minimal amount of code possible, but don't let its innocent appearance fool you; Booster analyzes the semantics of your code, sets up theoptimal infrastructure to run your application at scale, and even generates a fully-working GraphQL API for you – don't even mind about writing the resolvers or maintaining your GraphQL schema, it will do that for you too.
And have we mentioned it's all open-source and free? But not free like you have a few build minutes per month or anything like that, we mean, real free. Everything remains between you, your CI/CD scripts (wherever you want to put them), and your own cloud accounts. Nothing is hidden under the carpet, you can visit the Github repository and see every single detail.
Despite you can place commands, and other Booster files, in any directory, we strongly recommend you to put them in <project-root>/src/commands. Having all the commands in one place will help you to understand your application's capabilities at a glance.
-
<project-root> ├── src │ ├── commands <------ put them here │ ├── common │ ├── config │ ├── entities │ ├── events │ ├── index.ts │ └── read-models
Booster applications are event-driven and event-sourced so, the source of truth is the whole history of events. When a client submits a command, Booster wakes up and handles it throght Command Handlers. As part of the process, some Events may be registered as needed.
On the other side, the framework caches the current state by automatically reducing all the registered events into Entities. You can also react to events via Event Handlers, triggering side effect actions to certain events. Finally, Entities are not directly exposed, they are transformed or projected into ReadModels, which are exposed to the public.
In this chapter you'll walk through these concepts in detail.