Event Emission
Lifecycle events published to Redpanda topics from Control Plane — provisioning, membership, billing.
Control Plane publishes lifecycle events to Redpanda when platform state changes. Downstream services (billing, analytics, integrations) subscribe to these topics.
Envelope format
Every event uses a validated envelope:
{
"version": "1.0.0",
"event_type": "client.provisioned",
"tenant_id": "<workspace_uuid>",
"occurred_at": "2026-06-17T12:00:00Z",
"payload": { }
}tenant_id is the workspace UUID for ordering guarantees per workspace partition.
Event types
| Event | Topic | When emitted |
|---|---|---|
client.provisioned | clients.lifecycle | Workspace saga completes |
client.suspended | clients.lifecycle | Workspace frozen |
client.offboarded | clients.lifecycle | Hard delete completes |
member.added | clients.lifecycle | Membership granted |
member.removed | clients.lifecycle | Membership revoked |
usage.threshold.met | clients.usage | Quota threshold crossed |
audit.export.completed | clients.lifecycle | Audit export finishes |
llm.cu.consumed | groundfloor.billing.cu | LiteLLM usage webhook |
Publishing guarantees
- Envelopes are validated before publish — malformed events never reach the broker
- Broker failures on non-critical paths (e.g. after a successful freeze) do not roll back the database transaction
- Consumers should be idempotent — replay and at-least-once delivery are possible
Subscribing
Integration teams typically:
- Connect to the platform Redpanda cluster (credentials from Groundfloor ops)
- Subscribe to
clients.lifecyclefor tenant state changes - Filter on
event_typeandtenant_id
Event schemas and broker endpoints for production are provided during onboarding. This page documents the contract, not broker credentials.
Related
- Provisioning —
client.provisioned - Offboarding — suspend and offboard events
- Activity log — human-readable audit trail (separate from Redpanda)