Releases: boostercloud/booster
Multi-environment support, GraphQL, EventHandlers, and Local provider!
This release contains a bunch of new exciting features that makes Booster easier to use and more powerful:
New features
- Added support for GraphQL
The idea is to move towards GraphQL where:- Commands are submitted through mutations
- ReadModels read requests are submitted through queries
- You can subscribe to ReadModels changes through subscriptions
Right now, the GraphQL schema is generated automatically based on your Commands and ReadModel types and you can submit mutations and queries using the endpoint/graphql
. Subscriptions will come in a future release
- Event handlers: Now you can execute additional logic as a reaction to any event in your system, which in turn, can generate new events. This extends substantially the kind of application you can build.
- Multiple environments: Now, when you configure your Booster application in the
config.ts
file, you specify the name of the environment you are configuring. This way, for example, you can have a"production"
environment that uses the AWS provider and a"development"
environment that uses the local provider (see below) - Local provider: There is a new provider available: 'framework-provider-local`. Its purpose is to allow you to execute Booster locally so that you can test and debug the application before sending it to production. Right now, only authentication and submitting commands are supported. We will keep working on it to make it support all Booster features
Bugfixes
There were so many bugs fixed that writing them here will take too long. I'd rather spend that time fixing more bugs! 😄
Normalize projection decorator
This release changes the "@Projection" decorator to "@Projects" to be consistent with other decortators.
Note: This is a breaking change. Your projects will stop compiling. Luckily, the solution is simple enough: just change the @Projection
decorators by @Projects
v0.1.3
- Ensure that the name of the project is properly formatted
Fix generators
After a major refactor, boost
generators weren't working properly. This release fixes them and ensures that all the step-by-step guides are working
Booster Cloud Framework v0.1.1 - First Public Beta Release Notes
Version 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
v0.1.0: Release 0.1.0
Co-authored-by: Nikita Tchayka <nick@booster.cloud> Co-authored-by: Javier Toledo <javier@booster.cloud>