Booster Framework: disrupting the cloud industry and transforming developer experience.
We, at The Agile Monkeys, are dreaming of a better future for software development.
OUR MISSION: An open-source project to disrupt the cloud industry and redefine developer experience, multiplying joy and productivity by 10.
The cloud has to be commoditized and we should bring the power back to developers. We want to stop vendor lock-in and offer total freedom to move your project from one service provider to another, anytime.
But that’s not enough, we need a total developer’s experience revolution. Booster lets developers focus only on the code that really matters, on their ideas to solve real problems, and allows them to forget about spending hours connecting wires.
Yeah, we know it sounds crazy, but we have more than just words to demonstrate that such a future is possible. Take a look at the demos, the project in Github, and the documentation in booster.cloud.
This is what we are building to achieve our mission:
- Zero config infrastructure: We build the optimal infrastructure to run your code at scale for you. If it compiles, it can be deployed to your cloud provider of choice or Kubernetes, including the database instances, authentication mechanisms, and any other service required. It will work, no matter if you have one or one million users.
- Convention over configuration: We bring the concept to the extreme, not only reducing configuration and integration work to a minimum but also introducing opinionated implementations of common patterns, like CQRS and Event Sourcing, eliminating most boilerplate code.
- Everything inferred from code: We want to reach a new level of developer productivity, so we analyze your project’s code at compile time and generate a fully working real-time GraphQL API on the fly. You don’t even need to configure your database or make queries. Everything works out of the box.
- Thanks to the native event-sourced architecture, building a microservices architecture becomes as easy as you can imagine. Events can be easily streamed to any standard message broker or database and read from other services. If you have Booster applications on both ends then it will feel like teleporting data from one service to another.
- Anyone should be capable of extending the framework. That’s why we say that everything is a Rocket in Booster! Rockets are regular npm packages that can extend Booster in any way imaginable, from integrating new infrastructure to packing entire pieces of reusable functionality. They make Booster incredibly adaptable to any environment.
- Everything is an event, and everything is stored by default. Storage is becoming cheaper and more efficient every day, and data is becoming the gold of this era. Keeping all the data forever allows you to find the root of errors or audit your software easily. It will give you an incredible pool of raw data that you can reprocess later in new ways or feed to machine learning processes to make predictions or new relations of data.
What’s the current state?
We’ve built the foundations, and there’s a fully working implementation using Typescript and AWS. It feels like magic. There is still a lot of work to be done to support new service providers, but we’re convinced that this project could become the next level of abstraction in software history.
We know that this is extremely ambitious, and that’s why it’s open-source because we believe that the only way to make it succeed is through the collaboration of diverse groups with varying goals. But every now and then, there has to be a jump in software evolution, and we believe that bold projects like this are the ones that will redefine the future.
How did we do it?
Booster provides a highly opinionated implementation of the CQRS and Event Sourcing patterns in Typescript, helping you to write highly semantic, simple, and strongly typed code that puts into practice the ideas of Domain-Driven Design.
At deployment time, Booster extracts metadata about the structure of your program from the type system and combines it with years worth of knowledge and experience from our team about software development patterns and cloud services. This produces an optimal cloud environment to run your application.
All of this combined provides an unprecedented set of high-level abstractions that allow you to define your application in terms of commands, events, entities, and read models, writing simple handler functions to tie everything together. And 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.
But this is just the beginning. We want to allow developers to work with any programming language and also with other common patterns like MVC.
Yeah, like always with any innovative project. It’s a gigantic project, and there are many features we still want to build. The community has to continue growing if we want to keep receiving contributions, feedback, and ideas.
Some people will say that they don’t want such an opinionated framework. Yeah, we get it, that happens all the time with every new software abstraction. But abstractions always end up winning, because, at the end of the day, they allow developers to focus on what really matters and create value much faster than with the previous generation of tools. Everyone wants to make their ideas a reality and innovate. Nobody wants to be 9 to 5 writing boilerplate code if they had an alternative.
And again, this is an open-source project that can be extended easily. If you’re missing something that you want, solve it and make a contribution!