Microservices Architecture — Important Implementation Components

Lalitha
2 min readOct 17, 2018

This article aims at listing the basic components of microservices. In real implementation, I have come across scenarios where certain components are often overlooked or taking the back seat. Most importantly compromised component is configuration server. Reasons could be from anything to not having mature design at the start or due to urgency of delivery to market or certain cases where design preference is to have decentralised properties. Let’s start understanding the major components of microservice architecture and their importance.

  1. Configuration Server
    The centralised server with configuration settings/properties of all the services. Why have a central store for configurations? Well, this aims at ease of maintenance. The properties files are version controlled and any change to configuration can be published to all the services without the need of restarting the service in itself. Since all services connect to configuration server, need to ensure that it is highly available.
  2. Service Registry
    Microservices is a collection of distributed components with clear defined boundary on business functionality. There arises a need for scaling up certain components over others. This means, if a high demand business service/component has multiple instances running, there will be different IPs for same component. Client need not know of either of these. The purpose of Registry Service is to maintain these services number of service instances at any given point in time. Whenever a service is scaled up/down it would register/removes its details from Registry service. Services required to communicate to other services would first connect to Registry Service for the required service details. Hence, this is another important component which must be highly available. There are different options available for implementation of Registry service, will get into these details in separate article.
  3. Services
    Services or components often used interchangeably. These are key components of microservices architecture. As I have mentioned earlier, services are independent and smaller features of business functionality with clear boundary. Services are implemented and exposed as APIs for usage by other business components or external services. As business functionality changes, the required components can be added or removed without impacting the whole business solution. This often is challenged by well architectured design in implementing microservices.
  4. Gateway Service
    Services collectively define business functionality and they publish APIs to the clients. It often becomes a overhead task maintaining and managing these API endpoints from multiple services. Gateway service provides microservice client a common endpoint and internally manages the endpoint maintenance. Gateway service also becomes handy in taking care of authentication and authorization (security) checks for every client requests’.

--

--