better/compute

Events

The 32 event families the control plane publishes to webhooks, the SSE watch stream and sinks.

Every event is { id, type, tenantId, subject, data, time }, delivered at least once in commit order. Subscriptions name a type or a family (node.*); a pattern nothing in this catalog can match is refused, and webhooks.eventTypes returns the same list.

TypeSubjectModuleDescription
site.*site/{id}serverSites created, updated and deleted
project.*project/{id}serverProjects created, changed and archived (project.archived: { projectId, name })
tenant.*tenant/{id}serverIAM tenant mirrored as suspended, deleted or active again (tenant.state-changed: { tenantId, state, previous, reason }); a deleted tenant fully released by every module (tenant.torn-down)
pool.*pool/{id}capacityPools created, updated, offered, unoffered and archived
quota.updatedpool/{id}capacityA tenant quota on a pool changed
quota.budget-exceededpool/{id}capacityA tenant's IAM budget was spent and the pool offer's onBudgetExceeded applied (notify, stop-new or drain)
reservation.*reservation/{id}capacityReservation lifecycle (placed, active, released, ended, …) and awaiting-confirmation
reservation.reassignedreservation/{id}capacityAn offboarded identity's reservation moved to its successor (§12.7): { reservationId, from, to, reason }
node.*node/{id}serverNode lifecycle and connectivity: joined, acceptance.*, adopted, connected, disconnected, unreachable, lost, drained, deleted, status, command.queued, ssh-cert.issued, report-failed
node.command.cancel-requestednode/{id}serverCancelling a command was requested ({ nodeId, commandId, kind, state })
node.condition.changednode/{id}inventoryA hygiene or pressure condition was raised or cleared (DriverMismatch, CertExpiring, DaemonOutdated, Cpu/Memory/DiskPressure): { condition, status, reason, noSchedule }
node.remediation.*node/{id}provisionHealth remediation started, succeeded or escalated to an operator
pool.remediation.pausednode/{id}provisionThe remediation circuit breaker held a pool back (too many nodes turned unhealthy)
node.inventory.changednode/{id}inventoryA node reported a different inventory
node.gpu.*node/{id}inventoryA GPU appeared or went missing
node.mig.*node/{id}inventoryA MIG layout changed
node.disk.*node/{id}inventoryA disk was replaced
node.driver.*node/{id}inventoryA driver changed
node.enrollednode/{id}metalA bare-metal machine enrolled
node.pxe-mac.discoverednode/{id}metalPXE discovery found the MAC of a machine enrolled without MACs, first seen under its product UUID right after metal power-cycled it: a candidate for metal.confirmMac, or bound at once on a pool that trusts its provisioning network ({ nodeId, mac, productUuid, siteId, agentNodeId, bound })
node.pxe-mac.confirmednode/{id}metalAn operator bound a machine's PXE MAC with metal.confirmMac ({ nodeId, mac, discovered, requestId })
node.provision.*node/{id}metalProvisioning state transitions of a bare-metal node
command.settledcommand/{id}gatewayA command reached a terminal state
workflow.*workflow/{id}provisionProvisioning workflow transitions
instance.*instance/{id}vpsVPS instance lifecycle
sandbox.*sandbox/{id}vpsSandbox lifecycle (§3.7): created, ready (its instance first runs), extended, expiring (once, before expiry: { expiresAt }), expired (before the delete), withdrawn (its agent or delegation ended, or its owner left without a successor: { reason }), reassigned ({ from, to, reason }), deleted; data { templateId, instanceId, poolId }
sandbox.snapshot.*sandbox/{id}vpsA sandbox snapshot settled: ready { snapshotId, includeMemory, sha256, sizeBytes } or failed { snapshotId, reason }
fleet.*fleet/{id}fleetFleetConfig converged or drifted
rollout.*rollout/{id}rolloutDaemon rollouts started, paused, resumed, aborted, completed
tunnel.*tunnel/{id}serverTunnels issued and closed
security.*variesserverJoin tokens, site tokens, refused joins, revoked certificates, secrets
webhook.pingwebhook/{id}eventsA test delivery from webhooks.ping

Was this page helpful?

Better Compute is created by Sean Filimon

Last updated

On this page

No Headings