When developing a new backend application, there is bunch of things we need to think about:
- Which language am I going to use?
- Do I need any framework? Which one?
- Do I know how to model my problem? (models, relations etc..)
- Where am I going to deploy my application?
- What kind of DB do I need? (SQL, noSQL etc..)
- How will I expose my service?
- Do I need a cloud provider? Which resources do I need?
Needless to say this is overwhelming, specially nowadays with the amount of options available to solve each problem.
The truth is that this is very time consuming. Looking for the best posible available option is almost always a very expensive decision and it's a trap.
Instead, I believe it's always better to have a default choice. The problem is, how do we choose one? Well, it is basically an option we have high trust and confidence it will just work, something that is reliable to solve the problem you have. Once we have something working we can improve from there.
The key point here is that it is delusional to think that at the beginning of a project we should test all the posible solutions to make the best possible decision from the very beginning.
I'm starting to think my default choice to develop backend applications can be the Booster Framework.
I'm mostly familiar with AWS when it comes to Cloud providers so let's imagine a regular development process
- I open my IDE, start writing some code
- Open AWS console (or change terraform if using infra as code) then change some param in Dynamo DB
- Then I remember I need to change another params in my API gateway then I open another tab with the AWS console
- Then I go back to my code and forget what I was doing
Do you see where I'm going? This constant context switching between Infrastructure and Business logic (the code in my IDE) can be expensive and overwhelming specially at the beginning of a project or when crafting a prototype.
I needed to build an account backend application quickly, a simple backend to add and subtract values, get balances etc.. so I decided to do it with Booster, I was done in like 2 hours. I didn't need to think about Infrastructure. Everything is deployed seamlessly, no context switching, no AWS console tabs, no Infra to handle. In this sense, it is very similar to the Serverless experience we get when writing a Lambda function in AWS for instance, but this even goes beyond that.
Give it a try https://www.booster.cloud/
Top comments (1)
I can not agree more.
I've been years working for a large company that uses a microservices architecture with Java as its main language. I'm not exaggerating when I say that I spent 20% of my time actually writing Java.
The rest was dealing with database configuration, bugs like running out of DB connections, SQL query optimizations, server problems (instances going down, log files getting too long and running out of space, insufficient memory because some Java service grow unexpectedly, etc.), fighting with deployment scripts, scaling server instances, configuring Nginx, dealing with JSON serialization, and a large etc.
When I started using Booster Framework to build backend applications, it seemed like magic. I didn't need to think about any of this, just designed my models and write the business logic. Then hit "boost deploy" and done 🤯 .
Disclaimer: I'm one of the core developers of the Booster Framework, but this doesn't change any of the words I have written. In fact, we started building the framework because of all this suffering we had in our daily work. But it was not after I first used the first version (after many months of developing) when my mind exploded and really got excited.
It is hard to explain, it is better if you experience it.