Before actually coding, we need to understand the how and why. Let's say if I have to cut down a tree (PS: I am a nature lover and I don't support this), instead of directly chopping it down, I would rather first sharpen the axe. We are going to do the same, sharpen our axe first. In this section, we are going to look at various aspects involved in designing microservices. We will look at what models of communication to go through, what is included in microservices, and what areas to take care of in order to achieve efficient microservice development.