Booster Cloud Framework v0.1.1 - First Public Beta Release Notes
Pre-releaseVersion 0.1.1 is the first publicly available version of the Booster Cloud Framework. This is still a pre-release version, but after having been working the past few months with our private beta testers, the project has reached a state where the most basic structures are set and tested (although take this with a grain of salt and expect breaking changes).
The project can be currently used to build very simple or toy projects as a way to start testing the framework, but we recommend against building production projects yet.
In this version, Booster supports:
- Defining user roles that can sign up, sign in, and sign out of the system with a very simple API.
- Authenticated commands with handlers that can perform virtually any action that can be run in a lambda function, with simple APIs to check current values of entities and produce new events that are automatically appended to the event store. Commands in Booster define the WRITE API.
- An event store that can digest a significant amount of inbound events, preserving the order of insertion and providing great consistency guarantees, thanks to automatic sharding via Kinesis.
- Entities are built on the fly under the hood when you need to check the current state, and are automatically snapshotted for better performance. Entities represent the domain model and system internal state, so they are not exposed to the API by default.
- Entities can be projected to Read Models to build a Read API. This Read API is very limited in this version: Booster exposes a typical REST Read API where you can query the current state of the Read Models, but there's no streaming API yet and the state needs to be polled. Read API does not support authentication mechanisms yet. Both issues are at the top of our backlog and will be solved in upcoming versions.
- There's a basic reactive migration mechanism in place: Events, Entities, and Commands are versioned by default. If you want to change the schema of any of those concepts, you can do it freely and set up a migration for old versions to be upgraded by Booster. This mechanism allows more freedom to change the code and perform faster deployments, as the system does not need to wait for old versions of events and entities to be migrated. This mechanism also allows Booster to replay events even if many of those events comply with schema versions that are long deprecated.
So this is Booster 0.1.1! It’s just the beginning of this journey and we know that there's a lot to do yet before we can call it a production-ready framework, but we couldn't be more excited about everything we've achieved so far and especially for all the things we have in the oven!
Thanks for all the feedback and ideas from The Agile Monkeys engineers and the beta testers participating in the private beta over the past couple of months to help us reach this point. And of course great kudos to our core team for this impressive milestone (in alphabetical order):
- Alvaro López Espinosa <alvaro@booster.cloud>
- Nikita Tchayka <nick@booster.cloud>
- Javier Toledo <javier@booster.cloud>
Where to start?
- Check out the project README file
- Visit our website
- Find the project packages in NPM