Skip to content →
Connect systemsConnector overview
GitHub
Connect systems

Connector overview

Route Praxis side effects into any external system of record through one contract.

Connector contract

A connector adapts Praxis side effects to one external system of record. The world and decision logic never need to know that system’s URLs, auth scheme, response shape, or remote identifiers.

The contract is functional: a connector is a plain object whose methods prepare calls or perform read-only observation. This makes dependencies such as fetch and environment values easy to inject in tests.

Capabilities

CapabilityPurposeRequired
actor.createEnsure a remote contact exists for an actorYes
booking.createCreate a remote bookingYes
booking.updateMirror completion or no-showNo
booking.cancelCancel the mapped remote bookingYes
message.sendSend a message to the mapped actorYes
pingReport reachabilityYes
listBookingsObserve remote bookingsNo

Transport selection

Booking, messaging, and cancellation each choose a mechanism independently. A mixed setup can keep bookings local while sending messages through a CRM and using mock-random for cancellation testing.

Partial transport patch
{
  "config": {
    "transports": {
      "booking": "local-sim",
      "message": "acme-crm",
      "cancel": "mock-random"
    }
  }
}

Execution order

01
Prepare

Build an operation request before network execution.

02
Ensure actor

Create or reuse the remote contact mapping.

03
Execute

Call the remote capability and retain its response.

04
Map

Record the returned remote id for later update or cancellation.

05
Conclude

Commit world state on success or recovery work on failure.