Scenarios
Pick a question and answer aloud before reading. Give the 30-second answer first. Then explain the mechanism, a failure, and the trade-off. Open the counter-questions one at a time.
The first 46 questions use current code. The final six ask how you would add a feature; they keep proposed work separate from the implementation. Every page links the teaching chapter, the map and the real source you can inspect. Local checks do not prove live AWS acceptance.
Try five questions per session: one correctness problem, one async problem, one infrastructure or delivery problem, one operating problem and one proposed design. Return later without notes. Use flashcards for recall, quizzes for common traps, or the mock interview for a timed sequence.
App boundaries and booking correctness
- Where would you put the boundary between the web app, API and worker?
- Why have procedure, service and query layers in such a small API?
- Why did you choose Redis sessions instead of JWT access tokens?
- How would you implement logout on every device without scanning Redis?
- How quickly should removing an admin role take effect?
- Two users request the last seat at once. How do you prevent overselling?
- How do you make a booking retry safe across API instances?
- A booking request times out. Can the client assume it failed?
Async work and private assets
- How do you avoid losing an email event after a booking commits?
- Your outbox relay published twice. Is the outbox design broken?
- Why put SNS before two SQS queues instead of letting both workers share one queue?
- One message fails in a ten-message Lambda batch. What should happen to the other nine?
- Can you guarantee exactly one confirmation email per booking?
- The dead-letter queue is growing. How would you recover without making the incident worse?
- A ticket worker crashes halfway through a four-ticket booking. How does retry recover?
- How do you let a user download a private ticket without making the S3 bucket public?
- How would you safely let an admin upload an event poster directly to S3?
Search, caching and sale-day load
- Why use a cursor instead of OFFSET for event search?
- An old search request finishes after a newer one. How do you stop it replacing the results?
- Your event cache expires and a hundred requests arrive together. What protects Postgres?
- A new event is saved but visitors still see an old list. How do you reason about invalidation?
- Should the events page serve old data when Postgres is down?
- Why did adding CSP nonces change your HTML caching policy?
- How would you protect the database during a popular ticket sale without trusting Redis for correctness?
- How do you keep rate limits consistent when the API scales to several tasks?
- The API CPU is low but booking latency is rising. Why might adding tasks make it worse?
Network and identity
- Why do your tasks have public IPs while the data stores stay private?
- How would you prove which security group rule permits a request?
- Which role would you change when a container cannot read a secret?
- A scheduled Lambda suddenly gets AccessDenied. What do you investigate first?
- How does GitHub deploy to AWS without stored AWS keys?
Delivery and recovery
- How do you know a successful deployment actually runs the new code?
- How do you change a database schema without breaking the running app?
- How would you roll back the app while keeping current infrastructure?
- Why can approving an old deployment delete infrastructure?
- What does your image pipeline prove about the artifact you deploy?
- The task is running but the ALB marks it unhealthy. What next?
- Why does server-side rendering fail when browser API calls work?
- Why can rotating a secret break only some running processes?
Operating under pressure
- Why can a batch time out even when every SDK call has a timeout?
- How do you stop queue processing from overwhelming downstream services?
- How would you decide whether Lambda cold starts need fixing?
- How do you follow one booking across the API and asynchronous worker?
- What makes an alarm actionable rather than noisy?
- How do you reduce development cost without losing track of environment state?
- What do you do in the first five minutes of a booking incident?
Proposed extensions: explain-only
- How would you add event reminders without missing or duplicating sends?
- How would you prevent the same ticket being checked in twice?
- How would you show live seat counts without overselling?
- How would you add a fair waiting room for a large sale?
- How would you expand bookings across regions without selling the same seat twice?
- How would you define booking SLOs and add distributed tracing?
Read this book online: https://book.theversehub.in/