Reading System Overview Descriptions
5 exercises on reading system architecture overviews: three-tier structure, microservice boundaries, API Gateway role, traffic flow, data ownership, and architectural trade-offs.
Reading system overview documents
- Identify the tiers: presentation (clients) → application (services) → data (databases)
- Find the entry point: what do clients connect to first?
- Map communication styles: synchronous (gRPC/REST, caller waits) vs. async (events/queues, fire and forget)
- Understand data ownership: which service owns which datastore?
- Architecture choices always involve trade-offs — look for the "why" as well as the "what"
0 / 5 completed
1 / 5
Read this system overview and answer the question:
ShopCore Platform — System Overview
ShopCore is a three-tier e-commerce platform. The presentation tier consists of a React single-page application (SPA) served via a CDN, and a separate React Native mobile app. Both clients communicate exclusively with the application tier through a single entry point: an API Gateway that handles authentication, rate limiting, and request routing.
The application tier is decomposed into five microservices: Product Catalogue, Cart, Order, Payment, and Notification. Each service owns its data and exposes a REST or gRPC API. Inter-service communication uses an event bus (Kafka) for asynchronous workflows and direct gRPC calls for synchronous queries.
The data tier holds each service's dedicated datastore: PostgreSQL for transactional data (Orders, Cart), MongoDB for the Product Catalogue (flexible schema for varied product attributes), and Redis for session state and rate-limit counters.
What is the role of the API Gateway in this architecture?ShopCore is a three-tier e-commerce platform. The presentation tier consists of a React single-page application (SPA) served via a CDN, and a separate React Native mobile app. Both clients communicate exclusively with the application tier through a single entry point: an API Gateway that handles authentication, rate limiting, and request routing.
The application tier is decomposed into five microservices: Product Catalogue, Cart, Order, Payment, and Notification. Each service owns its data and exposes a REST or gRPC API. Inter-service communication uses an event bus (Kafka) for asynchronous workflows and direct gRPC calls for synchronous queries.
The data tier holds each service's dedicated datastore: PostgreSQL for transactional data (Orders, Cart), MongoDB for the Product Catalogue (flexible schema for varied product attributes), and Redis for session state and rate-limit counters.
The API Gateway is the single entry point for all client requests, handling cross-cutting concerns before routing to microservices.
The passage states: "Both clients communicate exclusively with the application tier through a single entry point: an API Gateway that handles authentication, rate limiting, and request routing."
Why use an API Gateway?
The passage states: "Both clients communicate exclusively with the application tier through a single entry point: an API Gateway that handles authentication, rate limiting, and request routing."
Why use an API Gateway?
- Clients only need to know one URL — the gateway handles service discovery internally
- Cross-cutting concerns (auth, rate limiting, logging, SSL termination) are implemented once in the gateway, not in every microservice
- The gateway can route to different services based on path:
/products/*→ Product Catalogue,/orders/*→ Order service - It can also handle protocol translation (REST → gRPC) if needed
- presentation tier → the client-facing layer (browser SPA, mobile app, desktop client)
- application tier → the business logic layer (microservices, APIs) data tier → the persistence layer (databases, caches)
- CDN → Content Delivery Network; serves static assets from edge nodes close to users