In this chapter, we learned the importance of making choices about the microservices stack. At first, it may seem very complex to make this kind of decision, but if we have in mind the definitions of the areas we want to develop, this process loses complexity.
We have seen that programming language, frameworks, and databases have defined purposes and we should never disregard this fact. A simple illustration is: trains are not made to fly. This does not mean that any tool is acceptable for any given purpose; it is simply not appropriate for a task for which it was not designed.
We have also seen the importance of caches, established how quick and agile communication between microservices occurs, and the importance of fault alerts ...