Progress in technology often involves leveraging existing solutions to create new ones. Writing your own code is not always the best approach. Always check if a given problem has a solution.
Layers
Writing code can be exciting, but it’s not always the best approach for the product. True innovation lies in leveraging existing solutions to create something new. Why reinvent the wheel when there are already proven solutions available?
Layered architecture has been a well-known concept in technology for a long time, and, most importantly, it works. Protocol stacks, microservices, and even the operating system – these solutions allow us to focus on solving a specific part of the problem.
When we save a file on a disk, do we think about how the sectors are arranged on the disk? No – the operating system does it for us.
When we call a RESTful API, do we think about how to fragment the packets and send them over the wire? No – the TCP/IP stack of the operating system does it for us.
Operating systems have earned widespread trust when it comes to performing tasks efficiently. In today’s world, we have many other products similar to operating systems, and I am excited about using them.
Use existing code
Cryptography is a perfect example of a domain where we should use existing solutions. Every training and article that I know states that writing custom cryptography algorithm is not a good idea. There are solutions that are tested and proven to work for various products, and it is almost impossible to do it better.
Overall benefits
The best code is the code you don’t need to write.
The best infrastructure is the infrastructure you don’t need to manage.
Savings. This is the main argument. The cost of a solution is not just the actual billing for *aaS, but also the time it takes to develop and maintain the solution.
Using something that just works will always be easier than developing a custom solution.
In the end, it all comes down to optimization. While some services may be excessive, we need to stay agile and be prepared for changes. Setting up something in a few minutes is better than developing a bespoke solution that takes months.