Design a high-level logging system
MicrosoftSoftware Engineer · Technical ScreenLast updated
This System Design question evaluates a candidate's ability to design scalable, reliable centralized logging and observability infrastructure, covering distributed systems concepts such as ingestion, durable storage, querying/indexing, access control, and multi-tenant separation.
Design a high-level centralized logging system for a company.
Assume many services (microservices, batch jobs) running across multiple hosts/containers need to emit logs. The system should:
- Ingest logs from many producers.
- Store logs durably with retention.
- Support querying/filtering by time range, service, host, log level, request/trace ID.
- Handle bursts and partial outages.
- Provide basic access control and multi-tenant separation (e.g., by team/environment).
Describe the architecture, key components, data model/indexing strategy, scaling approach, and reliability considerations. No diagram is required, but be clear about data flow.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.