How to choose a tech stack
How to choose your tech stack
Consider your data type. If it’s relational, consider frameworks providing a strong ORM - such as Rails, Django and so on. If your date is already stored in an object storage (key-value), you might consider NodeJS.
CPU Heavy or Not
NodeJS is not a good choice for CPU-heavy apps because it’s single-threaded. Use a multi-threaded solution (like Rails) if your app is CPU-heavy. Try to estimate scope of the service you are developing. Keeping an efficient single-threaded application often might require you to split your services, otherwise you will end up bloating your single-threaded NodeJS app. Choosing NodeJS might lead you developing microservices more than monoliths. However, Rails plays quite nice as a mighty monolith. Your tech choice will also effect your infrastructure in general.
Real-time or not
Consider NodeJS if you need a real-time application or a proxy between multiple services. If you need concurrency, NodeJS won’t be a good fit, GoLang is a better choice.
Slow async operations
Rails wouldn’t be a good choice for slow operations that can be done async. Consider NodeJS because of it’s queue system. It can handle expensive/slow operations such as file system tasks, network calls etc. in a more smooth way. Node excels in situations like this. When NodeJS faces with this kind of tasks, it quickly delegates the work and tackles other incoming requests. However, again you have to consider if these tasks needs to be sync or async.
Most technologies come with their ecosystem. Make sure if the ecosystem covers your needs. For example, if the tools you frequently use don’t provide SDKs for the language you prefer, it may not be a good decision.
Community support is everything when it comes to open source. Double check the number of people collaborating to the project you plan to use.
How does it feel?
Developer happiness is a key factor in agile. For example Scala might be a great-fit for your technical needs, but you still have to consider your developers’ opinions about Scala.
Some technologies like Rust are new and hard to recruit. Even if you can find the perfect candidate be ready to pay more.
If you are a financial institution, you definitely don’t want to deal with floating point numbers. While all languages can deal with floats, some does it better and easier than the others. Consider your business type.
How not to choose your tech stack
- Don’t Choose Based on Competitors’ Experiences
- Don’t Choose Based on Personal Preferences
- Don’t Choose Based on Previous Projects
- Don’t Choose Based on Online Research