Events
An event represents a single occurrence of something happening in your system — a job completing, a deployment finishing, a payment processing. Events are immutable once ingested.
Event fields
| Field | Type | Required | Description |
|---|---|---|---|
status | "success" | "failure" | "partial" | Yes | The outcome of the event |
message | string | No | A human-readable description of what happened |
eventType | string | No | A category or label for the event (e.g. "deploy", "payment") |
externalId | string | No | An ID from your own system to correlate this event (e.g. a job ID) |
durationMs | number | No | How long the operation took, in milliseconds |
metadata | any | No | Arbitrary JSON — attach any structured data you want |
Status values
The status field is the only required field. It signals the outcome of whatever operation you’re tracking:
success— the operation completed as expectedfailure— the operation failed; usemessageto explain whypartial— the operation partially succeeded (e.g. some records processed, some skipped)
metadata
The metadata field accepts any valid JSON value — objects, arrays, strings, numbers. It’s intended for arbitrary context about the event that doesn’t fit into the other fields.
{
"status": "failure",
"message": "Database connection timed out",
"metadata": {
"host": "db-prod-1",
"retries": 3,
"durationMs": 30000
}
} There’s no schema enforced on metadata. Ackly stores it as-is and makes it searchable in the dashboard.
Event retention
Events are retained for a period that depends on your plan. See Plans & Limits for details.