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 in several layers of our microservices.
Finally, we know some tools that help us to prove the performance of microservices still in the local environment.
Armed with the knowledge acquired in this chapter, we are able to move on to the next, and to create our...