draftDraft
Geometry, rule semantics, asset scope, schedule, and notification policy are being validated.
Create a governed zone, evaluate vehicle activity, suppress noise, raise an actionable case, and retire the rule safely.
A state is not a UI label. It determines which actor may act, what evidence exists, what may be retried, and how recovery proceeds.
draftGeometry, rule semantics, asset scope, schedule, and notification policy are being validated.
activeThe versioned zone is deployed and evaluated against an explicit asset and schedule scope.
breachedA debounced enter, exit, dwell, or prohibited-presence event created an operational case.
acknowledgedA named operator owns investigation, severity, and response deadline.
resolvedterminalThe outcome and evidence are recorded without erasing the initiating activity.
retiredterminalThe zone no longer generates new cases but historical activities remain queryable.
Commands express intent. The aggregate validates current state and invariants, commits one new version, and emits a fact in the same transaction.
publish_geofenceFleet administratordraftgeofence.publishedKey by internal rule ID and definition version.
record_breachTelematics serviceactivebreachedgeofence.breachedUse provider activity identity plus rule version.
acknowledge_caseOperations controllerbreachedgeofence_case.acknowledgedDeduplicate the operator action, not the underlying telemetry.
resolve_caseOperations controlleracknowledgedgeofence_case.resolvedCommit outcome, evidence references, and notification outbox atomically.
retire_geofenceFleet administratordraftactivegeofence.retiredReconcile provider deletion and internal retirement with one command key.
Keep provider responses, business identity, state, events, and side-effect delivery distinct so each can be reconciled safely.
Versioned geometry, schedule, assets, and rule policy.
ruleIdversionproviderIdgeometryHashassetScopestatusImmutable enter, exit, dwell, or presence evidence.
activityIdruleVersiondeviceIdeventTimepositionHuman ownership, SLA, disposition, and notification state.
caseIdactivityIdsseverityownerstatusresolutionGeometry and coordinate reference are validated before publication.
Every activity names the geofence definition version that evaluated it.
Noise suppression never deletes raw source observations.
One provider activity creates at most one operational case per rule version.
Retirement stops new evaluation while preserving case and audit history.
Recovery changes durable truth only through the same rules as normal operation. A timeout is an unknown outcome, not evidence that nothing happened.
Alternating activities occur inside the configured hysteresis time and distance.
Debounce into one case while retaining raw activities for review.
The activity cites an earlier provider or internal definition version.
Evaluate and display it under the cited version; never reinterpret history silently.
Internal retirement is pending and provider reconciliation is unknown.
Retry the same delete identity and keep the rule visibly retiring until confirmed.
The case exists but the notification outbox remains pending.
Retry independently and escalate by age; do not create another case.
Measure state age, event health, retries, reconciliation, and sensitive-data access alongside latency and error rate.
Only explicitly indexed evidence is linked. Empty sections are not backfilled with invented endpoints or package names.
8 labs · 5 hostile scenarios/geofences/geofences/{id}/geofences/activities/geofences/{id}/geofences/{id}mappls-intouch-rest-apismapmyindia-intouch-web-plugins7 verified tests