Please enable JavaScript.
Coggle requires JavaScript to display documents.
Microservice (Observability (Application metrics (examples…
Service discovery
Server-side discovery
-
benefits
Compared to client-side discovery, the client code is simpler since it does not have to deal with discovery. Instead, a client simply makes a request to the router
Some cloud environments provide this functionality, e.g. AWS Elastic Load Balancer
drawbacks
Unless it’s part of the cloud environment, the router must is another system component that must be installed and configured. It will also need to be replicated for availability and capacity.
The router must support the necessary communication protocols (e.g HTTP, gRPC, Thrift, etc) unless it is TCP-based router
-
Client-side discovery
-
-
-
drawbacks
-
Need to implement client-side service discovery logic for each programming language/framework used by your application, e.g Java/Scala
Self Registration
-
benefits
A service instance knows its own state so can implement a state model that’s more complex than UP/DOWN, e.g. STARTING, AVAILABLE, …
drawbacks
-
must implement service registration logic in each programming language/framework that you use to write your services, e.g. NodeJS
A service instance that is running yet unable to handle requests will often lack the self-awareness to unregister itself from the service registry
-
Observability
-
-
-
Health Check API
-
-
drawbacks
The health check might not sufficiently comprehensive or the service instance might fail between health checks and so requests might still be routed to a failed service instance
-
-
Audit logging
-
-
drawbacks
The auditing code is intertwined with the business logic, which makes the business logic more complicated
-
Data management
Database per Service
-
benefits
Helps ensure that the services are loosely coupled. Changes to one service’s database does not impact any other services.
-
-
-
-
-
-
-
-
-
-
-
-
-