LoadBalancer⚖ => TrafficMonitoring🚦 => BusinessLogicCore⚙ => MicroservicesCalls📞 => ResiliencyEmpowerement💪 => DataStore💿 => EventsTracking📨 => ThirdPartyPersitence📀
⚖
Client sends a Play request to AWS.
The request is handled by AWS Load balancer ⚖.
🚦
AWS ELB will forward that request to API Gateway Service, named Zuul, to allow dynamic routing, traffic🚦 monitoring & security, etc
⚙
Application API component is the core⚙ business logic, in this scenario,
the forwarded request from API Gateway Service is handled by Play API.
📞
Play API will call📞 a microservice or a sequence of microservices to fulfill the request.
💪
Microservices are mostly stateless small programs,
to control its cascading failure & enable resilience💪,
each microservice is isolated from the caller processes by Hystrix.
💿
Microservices can save to or get data💿 from a data store during its process.
📨
Microservices can send📨 events for tracking user activities
or other data to the Stream Processing Pipeline.
📀
The data coming out of the Stream Processing Pipeline can be persistent
to other data stores📀 such as AWS S3, Hadoop HDFS, Cassandra, etc.