Ctrl K
Java · Senior · System design

Design a Java service that consumes events from Kafka, processes them in parallel, and writes the results to a database. How would you ensure performance, ordering, and no data loss?

~10 min by voice

How to approach it

This checks whether the candidate understands the real model of a Kafka consumer: a single-threaded client, ordering only within a partition, at-least-once and its consequences. And whether they can build a service from that which scales, doesn't lose or duplicate effects, and doesn't break on rebalances and poison messages.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsWrite a thread-safe RateLimiter class: the constructor takes how many requests per second are allowed, and the tryAcquire method, without waiting, returns true if the request can be let through and false if the limit is exhausted. It will be called concurrently from many threads. SeniorWrite an async function fetch_all that takes a list of URLs, an async function that fetches a single URL, and a limit on concurrent requests. It returns the results in the same order as the URLs, and a failure of one request must not take down the others. SeniorВозьмём перевод между двумя счетами, которые лежат в одной базе: списать с одного, зачислить на другой. Как вы это реализуете, чтобы при параллельных операциях деньги не потерялись и баланс не ушёл в минус? SeniorСервис проводит операцию в своей базе и после этого должен опубликовать событие в Kafka для других систем. Как сделать так, чтобы событие не потерялось и чтобы не ушло событие об операции, которая на самом деле откатилась? SeniorНесколько потоков одновременно делают counter++ над общей переменной, и в итоге значение получается меньше ожидаемого. Объясните, что именно происходит на уровне процессора и памяти, и какими способами это можно исправить — чем они отличаются внутри. Mid-level

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~10 min