The Booster Framework is a true serverless framework that provides a highly opinionated implementation of the CQRS and Event Sourcing patterns in Typescript. Using these patterns, you naturally write highly semantic, simple, and strongly typed code that puts into practice the ideas of Domain-Driven Design.
Booster extracts metadata from your code structure at deployment time, combining it with years worth of knowledge and experience from our team to build an optimal cloud environment to run your application at scale.
Combining these features, Booster provides an unprecedented developer experience. On the one hand, it helps you write simpler code, defining your application in terms of commands, events, entities, and read models. On the other hand, you don't have to worry about the tremendous amount of low-level configuration details of conventional tools. You write highly semantic code, and if it compiles, it will run on the cloud.
Booster is designed with extensibility in mind. If there's still something you can't do with the default functionality, there are lower-level APIs that you can use to extend any layer of the framework with Rockets (The way we call Booster's plugins). With Rockets, it's easy to add support for new cloud building blocks or pack functionality in highly reusable npm packages.
And this is only the beginning! We want to keep expanding the framework to become a tool usable from any programming language, add support for more runtime targets and implement other common high-level patterns like MVC. If you want to help us make this a reality, don't hesitate to ping us on Discord!
We've built the foundations, and there's a fully working TypeScript implementation that models CQRS and Event-Sourcing on top of AWS Serverless. The AWS implementation is thoroughly tested before every new release, including unit tests, integration tests, and automated load tests. It implements advanced techniques like optimistic concurrency or sharding databases out of the box and by default, so you don't have to worry about your data consistency. It feels like magic!
We also have experimental support for Azure and Kubernetes runtimes, which are already usable, but still, need some work to reach the same level of robustness and scalability of the AWS implementation.
We know that this project is extremely ambitious. Still, we're convinced that this project could become the next level of abstraction in software history. That's why we made it open-source. Because we believe that the only way to make something like this succeed is by the collaboration and support of diverse groups of developers with varying goals. Every now and then, there has to be a jump in software evolution, and we won't make it if we're not bold enough!
Booster Framework follows the next principles:
We've built the foundations and demonstrated that this new model of programming works. Now it's time for you to join our community and help us to make it grow! Join a diverse and welcoming community of crazy developers trying to redefine the future. There's no small contribution, and all ideas are welcome. Of course, we can't guarantee any success, but we believe the journey will be worth it no matter what. Bold adventurers will be recognized as such!
You can join the conversation and start contributing in any of the following ways:
Please refer to
CONTRIBUTING.md for more details. Pull requests are welcome. For major changes, please
open an issue first to discuss what you would like to change.
The Booster Framework is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.
Booster is under heavy development, and non-backward-compatible changes might be introduced before we reach v1.0.0.
Refer to Release Notes for more specific information about changes of each iteration.