Ai Coding And Product Systems hard
Your chat app streams responses over SSE. Mobile users switching between Wi-Fi and cellular often drop mid-response. The client retries by resending the prompt, which regenerates from scratch, doubles GPU cost, and produces a different answer. What is the best fix?
- A Switch from SSE to WebSockets, since a persistent bidirectional socket survives mobile network changes without reconnecting.
- B Decouple generation from the connection: buffer tokens per message ID and let clients resume from the last received event ID.
- C Disable streaming on mobile and return the full response on completion, so a dropped request can simply be retried idempotently.
- D Lower max output tokens for mobile clients so most responses finish before a typical network handoff interrupts the stream.
Answer: B. Decouple generation from the connection: buffer tokens per message ID and let clients resume from the last received event ID.
**Separating generation from delivery** costs some buffer storage and server state, but it keeps one generation per message and lets clients resume with SSE's Last-Event-ID. WebSockets (A) drop on network changes just like SSE, so the problem simply moves. Disabling streaming (C) sacrifices time to first token, and a retry would still regenerate unless the result is stored.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- Your assistant uses a classifier to route queries to a small or large model, which saves 60% of GPU spend. Analysis shows about 20% of hard queries are misrouted to the small model, which then gives confident wrong answers, and regenerate clicks on those threads have doubled. What should you do?
- Your workspace AI retrieves the top-k chunks from a shared vector index and passes them to the model with ACL metadata and a system prompt saying 'only use documents this user can access.' A user just received an answer quoting a private HR page they cannot open. What is the correct fix?
- Your support bot answers billing questions. One user has asked the same refund question three times, and retrieval confidence for that topic is low. What should the bot do next?
- Your AI review system receives a 4,000-line pull request spanning 60 files. Sending the whole diff in one prompt yields shallow, generic comments, and real bugs in files near the middle of the diff are missed. How should you structure the review?
- In your ChatGPT-style assistant, power users keep single threads running for weeks, reaching about 150K tokens. Cost per turn keeps climbing, latency is rising, and the model increasingly misses facts from early in the thread. What should you do?
- Your workspace AI filters retrieval using ACLs stored in the vector index, which is rebuilt nightly. An admin removes an employee from a confidential project page, but for the rest of the day the employee can still get AI answers drawn from it. What is the right fix?