Event sourcing
0-day streakReview

Your progress

Level 1

0 XP100 XP to level 2
0day streak
0best streak
0topics started
0cards reviewed
    Review cards

    Progress is stored only in this browser. No account is required.

    Layer 3 · Go deeper · 6 min

    Go deeper

    Size it, build it, then make the calls an interviewer will push you on.

    Build-up · 5 steps

    Two payments race on one wallet

    Two devices pay ₹800 from wallet-42 at the same moment. The stream is at version 7 with ₹1,000.

    Step 1 of 5

    One stream at version 7

    wallet-42 holds ₹1,000 after seven events. Every append must say which version it expects to follow.

    4 interview moments

    You’re the candidate

    The interviewer pushes on the hard parts. Pick an approach and see how it holds up.

    1. Deep dive 1 of 4

      Interviewer

      “A team wants Kafka to be the wallet service’s event store. What do you say?”

      Your move. Pick an approach:

    2. Deep dive 2 of 4

      Interviewer

      “A merchant’s wallet stream has 50,200 events, so every payment spends about half a second replaying. What do you do?”

      Your move. Pick an approach:

    3. Deep dive 3 of 4

      Interviewer

      “A projection bug has corrupted orders_view, built from 500 million events. How do you rebuild it?”

      Your move. Pick an approach:

    4. Deep dive 4 of 4

      Interviewer

      “You’re designing events for a service that handles customers’ names and phone numbers. How will you honour erasure requests?”

      Your move. Pick an approach:

    Build-up · 5 steps

    From a command to a fresh read

    A customer places an order, then opens “My orders”. Follow the write, the projection and the read that must not look stale.

    Step 1 of 5

    The command appends

    PlaceOrder goes to the write model, which checks the rules and appends OrderPlaced to the event store.