Setup

Product wants “notifications”: users get told when something they follow changes. The requirement is vague on purpose:

  • Email first. Push notifications “soon”. SMS “maybe”.
  • Users should be able to turn notifications off per type.
  • “It shouldn’t spam people.”

What you have:

  • A team of 3 engineers and a 6-week deadline.
  • A single web app (a monolith) on one Postgres database, plus a background job queue already used for password-reset emails.
  • About 200,000 users and 2 million change events a day. Roughly 5% of events should notify someone.
  • Most items have a handful of followers, but the 50 most popular items have 20,000–60,000 followers each.

Options the team has floated:

  1. A separate notification service with its own message broker and database.
  2. A notifications module inside the monolith: write events to an outbox table, and fan out with the existing job queue.
  3. A third-party notification platform, with the monolith calling its API.

Commit before you see the outcome

Your call

Choose an approach for the first version. Name the two biggest trade-offs you're accepting, and say what would make you change your mind.

Move the slider (or use the arrow keys) to set it. 0% is a pure guess; 100% means you'd bet on it.

After you reveal, your answer and confidence are locked. That's the point.