Microservice Architecture
Microservices architecture is a software design approach where an application is broken down into small, independent, and loosely coupled services, each responsible for specific business functionalities, enabling easier development, deployment, and scalability.
Monolithic architecture is a software design approach where a single codebase contains all the components and modules of an application.
Functional decomposition is a technique used in system analysis and design to break down a complex system into smaller, more manageable parts. Each part represents a specific function or sub-system of the larger system.
The Scaling Cube is a model that suggests three dimensions for scaling a system: X-axis scaling, Y-axis scaling, and Z-axis scaling.
API Gateway is a server that acts as an API front-end, receiving API requests, enforcing throttling and security policies, passing requests to the back-end service, and then passing the response back to the requester.
A service registry is a central directory that keeps track of information about services in a distributed system. It helps manage service discovery, enabling components to find and communicate with each other.
Inter microservices communication refers to the communication that occurs between different microservices within a microservices architecture. There are various approaches to achieving this communication, and each has its own set of pros and cons.
Circuit breaking refers to a software design pattern used in distributed systems to prevent a single component's failure from cascading and causing a system-wide outage. The concept is similar to an electrical circuit breaker, which interrupts the flow of electricity when a fault is detected.
A service mesh is a dedicated infrastructure layer that facilitates and manages communication between microservices in a distributed application. It is designed to handle the complex interactions between services, providing essential features such as service discovery, load balancing, traffic management, security, and observability. The primary goal of a service mesh is to improve the reliability, resilience, and overall manageability of a microservices architecture.
Deployment Stratigies: Deploying multiple services per host is a deployment strategy that involves running multiple software services or applications on the same physical or virtual host. This approach has its own set of advantages and disadvantages, and its suitability depends on the specific requirements and constraints of your system.