Implement POST /finalize with FinalizeAsync + TTL shrink #48

Closed
opened 2026-07-05 19:21:11 +01:00 by TimCane · 0 comments
TimCane commented 2026-07-05 19:21:11 +01:00 (Migrated from github.com)

Goal

Host + Open-only: distribute unclaimed equally, run extras without Open-suppression, lock, CAS-write Finalized passing TTL 3600 (session + code keys atomically), broadcast SessionFinalized, return the finalized snapshot.

References

Done when

  • Advances M6 A1/A4.

Part of M6: Finalize and email.

## Goal Host + Open-only: distribute unclaimed equally, run extras without Open-suppression, lock, CAS-write Finalized passing TTL 3600 (session + code keys atomically), broadcast SessionFinalized, return the finalized snapshot. ## References - [docs/04-api-contract.md#post-apiv1sessionssessionidfinalize](https://github.com/TimCane/bill-splitter/blob/main/docs/04-api-contract.md#post-apiv1sessionssessionidfinalize) - [docs/02-domain-model.md#split-math-the-core-algorithm](https://github.com/TimCane/bill-splitter/blob/main/docs/02-domain-model.md#split-math-the-core-algorithm) - [docs/03-redis-schema.md#lifecycle-operations](https://github.com/TimCane/bill-splitter/blob/main/docs/03-redis-schema.md#lifecycle-operations) ## Done when - Advances M6 A1/A4. --- Part of **M6: Finalize and email**.
Sign in to join this conversation.
No description provided.