Design a Sliding-Hour Top-100 User Event Pipeline
Last updated: September 5, 2026
Quick Overview
Design a system to identify the top 100 users with the highest event counts over the past hour from a stream of user events.
Oracle
September 5, 20260
0
8 solved
Design a system to identify the top 100 users with the highest event counts over the past hour from a stream of user events.
This question is typically asked during the onsite interview round for software engineering roles at Oracle. The interviewer is looking to evaluate the candidate's understanding of system design principles, particularly in handling real-time data processing. Candidates are expected to demonstrate their ability to design scalable solutions while considering trade-offs between different processing methods and technologies.
What the Interviewer Expects
- Outline a high-level design (HLD) for the event processing system.
- Discuss the choice between batch processing and streaming processing.
- Explain the use of sliding time windows for real-time analytics.
- Evaluate different technologies like Flink and Spark Streaming.
- Identify potential bottlenecks and scalability issues in the design.
Key Topics to Cover
How to Approach This
- Start by clarifying functional and non-functional requirements with the interviewer.
- Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
- Draw a high-level architecture first, then deep dive into 1-2 critical components.
- Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
- Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
- How would you handle data skew in your design?
- What strategies would you use for fault tolerance?
- Can you explain how you would test this system?
Sharpen Your Skills on Codemia
Practice similar problems with our interactive workspace, get AI feedback, and track your progress.
Practice System Design ProblemsSample Answer
Requirements
To design a system that identifies the top 100 users based on event counts over the past hour, we need to process a stream of events formatted as (userId, eventType, timestamp). The system should be a...
High-Level Design
The architecture can be divided into several components:
- Event Ingestion: Use a message broker like Kafka to handle incoming event streams.
- Stream Processing: Utilize a framework like Ap...