Skip to main content

Responsibility boundaries

GuildGate implements shared security and reliability mechanisms; it does not take over product-domain decisions.

GuildGate boundary​

  • Session token hashing, expiry, rotation, and revocation
  • Exact-origin and session-bound CSRF verification
  • Action lifecycle, deadlines, idempotency, and concurrency controls
  • Store, transaction, lock, realtime, and telemetry contracts
  • Stable user error codes with hidden server error details
  • Production startup guards

Application responsibility​

Resource access, user/bot permission mapping, domain validation, schemas, migrations, retention, backups, Discord request budgets, proxy/TLS, and incident response remain in the application.

JavaScript cannot forcibly stop an arbitrary promise. GuildGate returns at the deadline and supplies an AbortSignal, but the physical operation may finish later. A durable write that can outlive a lease should reject stale workers through fencing tokens.

The transactional outbox provides at-least-once delivery. Consumers that apply external side effects must deduplicate by event ID.