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/