Checkout starts a payment workflow
Keep price selection and workspace billing authority on the server.
Entitlements are a server decision
Translate subscription state into workspace capabilities and enforce limits atomically.
Verify the bytes that Stripe signed
Preserve the raw webhook body and authenticate the provider before accepting an event.
Store each provider event once
Separate delivery deduplication from the order of subscription changes.
Reconciliation asks what is true now
Fetch canonical subscription state and prevent stale workers from overwriting it.
A live connection carries notifications
Understand WebSockets and Socket.IO without replacing HTTP mutations.
A room name does not grant access
Authenticate sockets and recheck workspace membership before delivering tenant events.
Reconnect by reading current state
Recover missed notifications and handle duplicate observations safely.