Now that we have developed some microservices, it's time to learn about some patterns and some design decisions involved around them. To get a broader perspective, we will look at what a microservice should handle and what it shouldn't. A number of factors need to be considered while designing microservices, keeping best practices in mind. Microservices are solely designed on the principle of single responsibility. We need to define boundaries and contain our microservices. The following sections cover all the factors and design principles that need to be considered for efficiently developing microservices.