FA-001 / Queues / Open access
Duplicate delivery changes an aggregate · case 01
A replayed event increases a total that should change once per event identity.
ROOT CAUSE
Delivery identity was discarded before aggregation.
VERIFIED REPAIR
Deduplicate by event identity, preserving distinct events with equal amounts.
Unsuccessful approach: Deduplicating amounts collapses legitimate equal-valued events.
Case contract
Deduplicate by event identity, preserving distinct events with equal amounts.
Why this case matters
A compact reasoning and repair task with executable evidence.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(events):
return sum(e['amount'] for e in events)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
events = [{'id': 'a', 'amount': N}, {'id': 'a', 'amount': N}, {'id': 'b', 'amount': N}]
check('replayed delivery', solve(events), 2*N)
check('empty stream', solve([]), 0)
check('distinct equal amounts', solve(events[1:]), 2*N)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| replayed delivery | 3 | 2 | Failed |
| empty stream | 0 | 0 | Passed |
| distinct equal amounts | 2 | 2 | Passed |
SHA-256 / 82649a60bba1130d37a14f4c26126733aebbb4c9098c20d5b7d4e8d09f9e1387
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(events):
return sum(set(e['amount'] for e in events))
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
events = [{'id': 'a', 'amount': N}, {'id': 'a', 'amount': N}, {'id': 'b', 'amount': N}]
check('replayed delivery', solve(events), 2*N)
check('empty stream', solve([]), 0)
check('distinct equal amounts', solve(events[1:]), 2*N)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| replayed delivery | 1 | 2 | Failed |
| empty stream | 0 | 0 | Passed |
| distinct equal amounts | 1 | 2 | Failed |
SHA-256 / e3474409f621b10e0fb1761e2c8f869b1e8a2e43e146dbd0f64d84eb3a30098b
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(events):
return sum({e['id']: e['amount'] for e in events}.values())
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
events = [{'id': 'a', 'amount': N}, {'id': 'a', 'amount': N}, {'id': 'b', 'amount': N}]
check('replayed delivery', solve(events), 2*N)
check('empty stream', solve([]), 0)
check('distinct equal amounts', solve(events[1:]), 2*N)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| replayed delivery | 2 | 2 | Passed |
| empty stream | 0 | 0 | Passed |
| distinct equal amounts | 2 | 2 | Passed |
SHA-256 / 7d2776c4e9d6f8fd0de632bd6c9e76d2c12d485dcff06b679d09d240b1184898
Verification & scope
This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:36:49.838454+00:00.
Case digest / 392ecea4c3b80d482671512f7aa82cc0029e5117b51cc864c2cb16ff250f7271