RESTful API Patterns
Statelessness
Content Negotiation
URI Templates
Pagination
Versioning
Authorization
API facade
Discoverability
Idempotent
Circuit breaker
Microservice Patterns:
API gateway
Service registry
Circuit breaker
Messaging
Database per Service
Access Token
Saga
Event Sourcing & CQRS
Problem: How to enable a service to run in multiple environments
without modification?
Solution : (CloudConfig)
Externalize all application configuration including the database
credentials and network location. On startup, a service reads
the configuration from an external source, e.g. OS environment
variables, etc.
Container design patterns (Distributed Systems)
❑ The sidecar design pattern
❑ The ambassador design pattern
❑ The adapter design pattern
❑ The leader election design pattern
❑ The work queue design pattern
❑ The scatter/gather design pattern
Service Discovery:
Eureka instances can be registered and clients can discover the instances using Spring-managed beans.
Circuit Breaker:
Hystrix/Resilience4j clients can be built with a simple annotation-driven method decorator Embedded Hystrix/Micrometer dashboard with declarative Java configuration
Declarative REST Client:
Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations
Client-Side Load Balancer:
Ribbon / Spring Cloud Load Balancer
Router and Filter:
Automatic registration of Zuul/Spring Cloud Gateway filters, and a simple convention over configuration approach to reverse proxy creation
ELK – Elasticsearch, Logstash, Kibana: three different tools usually used together.
They are used for searching, analyzing, and visualizing log data in real-time.
Zipkin -is a distributed tracing system
It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data.
Spring Cloud Gateway
Spring Cloud Gateway is API Gateway implementation by the Spring Cloud team on top of the Spring reactive ecosystem.
It provides a simple and effective way to route incoming requests to the appropriate destination using Gateway Handler Mapping. And Spring Cloud Gateway uses Netty server to provide non-blocking asynchronous request processing.
To BE continue......
Eureka
Zookeeper
consule
Kafka
Ribbon/Hystrix
Resilience4j
OAuth
Feign distributed tracing
Zipkin
pods
ELK
Kibana
Circuit Breaker
Splunk
Docker Swarm
Scaling (horizontal, Vertical)
Cloud Foundry
Ratelimiter
BulkHead
BlueGreen Deployment
API Gateway
Spring Cloud Gateway
Proxy servers
Juules
SAGA pattern
cloudnative
Kubernetes
Docker
Profiling
12 factor app
OpenStack