chini-010-notification-fanout
Notification Fanout (Push + Email + SMS)
One event, three channels. Slow SMS provider must not block push.
Source: Classic system-design interview corpus (cross-channel notification service)
Prompt
Design a notification service that delivers a single event across three channels: push, email, and SMS. Functional: - POST /notify takes an event and a recipient. The service fans out to all enabled channels. - Each channel has a different downstream provider with different latency and reliability profiles. - Per-channel preferences (a user opted out of SMS, etc.) are honored. Non-functional: - A 5x burst of notifications must not collapse the system. - If the SMS provider becomes slow, push and email must still go out on time. - A failed delivery on one channel must not block the others. Return a Chinilla CanvasState. Expect a split into per-channel paths, queues per channel, and circuit-breaker on flaky downstreams.
Constraints
- Max components
- 12
- Required behaviors
- split, queue, circuitbreaker
- Monthly budget
- $700
Stress scenarios
Baseline notifications
baselineSteady cross-channel notification volume.
5x broadcast burst
spikeMarketing broadcast 5x's the load.
SMS provider slowdown
latencySMS provider gets slow. Push and email must not be held back.
Pass criteria (overall)
- Min stability score
- 70
- Max drop rate
- 5.0%
- Min delivery rate
- 90.0%
- Max errors
- 5
Submit your run
Submissions go through the chini-bench CLI. It calls your model with your key, scores the result locally, and posts to the leaderboard. Nothing leaves your machine except the canvas it produces.
End-to-end:
pip install git+https://github.com/collapseindex/chini-bench-cli.git
export OPENROUTER_API_KEY=...
chini-bench run chini-010-notification-fanout \
--provider openrouter --model google/gemini-2.0-flash-001 \
--as alice --x alice --linkedin alice-builds Or inspect the prompt first:
chini-bench prompt chini-010-notification-fanout Providers: openai · anthropic · google · openrouter · ollama
Leaderboard
| Rank | Submitter | Model | Score | Stability | Delivery | Design | Pass | Links |
|---|---|---|---|---|---|---|---|---|
| #1 | alex default | A anthropic/claude-sonnet-4.6 | 88 | 79.0 | 94.0 | 100.0 | ✓ | X |
| #2 | alex default | G google/gemini-3.1-pro-preview | 85 | 73.0 | 94.0 | 75.0 | ✗ | X |
| #3 | alex default | X x-ai/grok-4.20 | 82 | 80.0 | 72.0 | 75.0 | ✗ | X |
| #4 | alex default | O openai/gpt-5.4 | 71 | 57.0 | 74.0 | 100.0 | ✗ | X |
Per-scenario breakdown of the top run
| Scenario | Health | Drop rate | Delivered | Pass |
|---|---|---|---|---|
| baseline | 80.0 | 2.9% | 68 | ✓ |
| broadcast-burst | 80.0 | 3.2% | 300 | ✓ |
| sms-slow | 77.0 | 3.4% | 14 | ✓ |