How to read this page
Topics are the Kafka streams that carry events; you do not interact with them directly, but they are how the platform groups related event types and how schemas are versioned. What you subscribe to is an event type — the dotted name in each heading below, which arrives as event_type in the envelope.
A field marked ✓ is always present. An unmarked field is nullable and may be absent — treat it as optional in your types, because “absent” is a normal value and not an error.
The contract lives in the platform’s Avro schemas, and this page is a rendering of it. If a field is listed here it is in the registered schema. New event types are added by extending the payload union, which is a backward-compatible change — a consumer that does not know a new type keeps working.
Geofences
loc_mesh.events.geofences.v1
2 event types.
geofence.entered
A tracked subject crossed into a boundary.
| Field | Type | Required |
|---|---|---|
| geofence_id | string | ✓ |
| tenant_id | string | ✓ |
| geofence_name | string | null | — |
| polygon_id | string | null | — |
| device_id | string | ✓ |
| driver_id | string | null | — |
| latitude | double | ✓ |
| longitude | double | ✓ |
| positioned_at | long (timestamp-millis) | ✓ |
geofence.exited
A tracked subject crossed out of a boundary.
| Field | Type | Required |
|---|---|---|
| geofence_id | string | ✓ |
| tenant_id | string | ✓ |
| geofence_name | string | null | — |
| polygon_id | string | null | — |
| device_id | string | ✓ |
| driver_id | string | null | — |
| latitude | double | ✓ |
| longitude | double | ✓ |
| positioned_at | long (timestamp-millis) | ✓ |
Notes
loc_mesh.events.notes.v1
1 event type.
note.created
A note was added to an entity.
| Field | Type | Required |
|---|---|---|
| note_id | string | ✓ |
| tenant_id | string | ✓ |
| subject_type | string | null | — |
| subject_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
Orders
loc_mesh.events.orders.v1
4 event types.
order.cancelled
The order was cancelled.
| Field | Type | Required |
|---|---|---|
| order_id | string | ✓ |
| tenant_id | string | ✓ |
| cancelled_at | long (timestamp-millis) | ✓ |
order.completed
The order reached its terminal completed status.
| Field | Type | Required |
|---|---|---|
| order_id | string | ✓ |
| tenant_id | string | ✓ |
| completed_at | long (timestamp-millis) | ✓ |
order.created
A merchant-placed order was created.
| Field | Type | Required |
|---|---|---|
| order_id | string | ✓ |
| tenant_id | string | ✓ |
| merchant_tenant_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
order.status.changed
The order's lifecycle status transitioned.
| Field | Type | Required |
|---|---|---|
| order_id | string | ✓ |
| tenant_id | string | ✓ |
| from_status | string | null | — |
| to_status | string | ✓ |
| changed_at | long (timestamp-millis) | ✓ |
Packages
loc_mesh.events.packages.v1
6 event types.
package.created
A package was created.
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| order_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
package.damaged
A package was marked damaged.
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| damaged_at | long (timestamp-millis) | ✓ |
package.delivered
A package was delivered.
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| stop_id | string | null | — |
| delivered_at | long (timestamp-millis) | ✓ |
package.lost
A package was marked lost.
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| lost_at | long (timestamp-millis) | ✓ |
package.moved
A package moved to a new in-facility location (package journey).
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| facility_location_id | string | null | — |
| moved_at | long (timestamp-millis) | ✓ |
package.status.changed
The package's lifecycle status transitioned.
| Field | Type | Required |
|---|---|---|
| package_id | string | ✓ |
| tenant_id | string | ✓ |
| from_status | string | null | — |
| to_status | string | ✓ |
| changed_at | long (timestamp-millis) | ✓ |
Runs
loc_mesh.events.runs.v1
9 event types.
break.completed
A driver finished a break on a run.
| Field | Type | Required |
|---|---|---|
| break_id | string | ✓ |
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| completed_at | long (timestamp-millis) | ✓ |
break.started
A driver started a break on a run.
| Field | Type | Required |
|---|---|---|
| break_id | string | ✓ |
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| started_at | long (timestamp-millis) | ✓ |
run.assigned
A run was assigned to a driver and/or vehicle.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| vehicle_id | string | null | — |
| assigned_at | long (timestamp-millis) | ✓ |
run.cancelled
The run was cancelled.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| cancelled_at | long (timestamp-millis) | ✓ |
run.completed
The run reached its terminal completed status.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| completed_at | long (timestamp-millis) | ✓ |
run.created
A run (a driver's route for a date) was created.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| run_date | string | ✓ |
| driver_id | string | null | — |
| vehicle_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
run.reordered
The stop order on the run changed. Carries the new order so consumers can recompute ETAs without re-reading.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| stop_ids | array<string> | ✓ |
| reordered_at | long (timestamp-millis) | ✓ |
run.started
The driver started the run.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| started_at | long (timestamp-millis) | ✓ |
run.status.changed
The run's lifecycle status transitioned.
| Field | Type | Required |
|---|---|---|
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| from_status | string | null | — |
| to_status | string | ✓ |
| changed_at | long (timestamp-millis) | ✓ |
Stops
loc_mesh.events.stops.v1
9 event types.
stop.arrived
The driver arrived at the stop.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| run_id | string | null | — |
| driver_id | string | null | — |
| arrived_at | long (timestamp-millis) | ✓ |
stop.assigned
A stop was assigned to a run (and optionally a driver).
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| run_id | string | ✓ |
| driver_id | string | null | — |
| assigned_at | long (timestamp-millis) | ✓ |
stop.completed
Emitted when a stop reaches the terminal "completed" status.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| run_id | string | ✓ |
| tenant_id | string | ✓ |
| status | string | ✓ |
| completed_at | long (timestamp-millis) | ✓ |
| driver_id | string | null | — |
stop.created
A stop was created.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| order_id | string | null | — |
| run_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
stop.departed
The driver left the stop.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| run_id | string | null | — |
| driver_id | string | null | — |
| departed_at | long (timestamp-millis) | ✓ |
stop.failed
A delivery/collection attempt at the stop failed.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| run_id | string | null | — |
| driver_id | string | null | — |
| reason | string | null | — |
| failed_at | long (timestamp-millis) | ✓ |
stop.rated
A customer rated the delivery at this stop.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| rating | double | ✓ |
| rated_at | long (timestamp-millis) | ✓ |
stop.status.changed
The stop's lifecycle status transitioned. Generic transition event; the granular events above fire for notable milestones.
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| from_status | string | null | — |
| to_status | string | ✓ |
| changed_at | long (timestamp-millis) | ✓ |
stop.updated
A stop's mutable fields changed (coarse; consumers re-read for detail).
| Field | Type | Required |
|---|---|---|
| stop_id | string | ✓ |
| tenant_id | string | ✓ |
| updated_at | long (timestamp-millis) | ✓ |
Users
loc_mesh.events.users.v1
2 event types.
user.created
A tenant user was created. If the user is also a driver, driver_id is populated (this covers "driver created").
| Field | Type | Required |
|---|---|---|
| user_id | string | ✓ |
| tenant_id | string | ✓ |
| driver_id | string | null | — |
| created_at | long (timestamp-millis) | ✓ |
user.suspended
A tenant user was suspended.
| Field | Type | Required |
|---|---|---|
| user_id | string | ✓ |
| tenant_id | string | ✓ |
| suspended_at | long (timestamp-millis) | ✓ |