Jump to a problem, path or page
Jump to a problem, path or page
01 · Develop the design
Give each auction one serialized write authority. Check its deadline and increment policy under the same lock as bid insertion, then finalize exactly one outcome with an outbox event independently of projection or notification delays.
Stage 1
Fix the ordering contract
Define acceptance at an authoritative check while holding the auction lock, rather than claiming fairness by client send time.
Stage 2
Keep money-like units exact
Use checked integer units and a positive minimum increment. This domain model does not authorize charges or settle payments.
Stage 3
Commit finalization once
Closing stores winner, final price and notification intent atomically. A read projection can lag and must not be the admission authority.
02 · Work through the method
03 · Justify the choices
Which time determines bid eligibility?
The defined authoritative admission time under the auction lock
Client timestamps are untrusted and delayed workers cannot define whether an earlier bid met the deadline.
What if the close worker is late?
Reject new bids at the deadline and let the worker finalize later
Deadline enforcement belongs in bid admission even before the closed status is materialized.
How are tied prices handled here?
Reject bids below the current highest amount plus the positive increment
The specified increment policy avoids equal accepted highest bids and leaves one deterministic sequence.
04 · Plan the evidence