Cudatus Relay
The network, and the tools around it
Relay is a real-time road event network: one contract to publish, one stream to consume, every connected actor enriching the same wire.
What Relay is made of
Four components and one contract between them. Every row links to the running thing.
API
REST for writes and area reads, server-sent events for the live stream. Authenticated with an organisation key; the browser gets a short read-only ticket instead. This is the product — everything else on this list exists to make it easier to reach.
Explorer
A plan view of every active event in a subscribed disc, fed by the same stream a customer subscribes to. It has its own page, and it doubles as the debugging tool when a subscriber asks why they did not receive something.
Sandbox
Publish test events and validate an integration before pointing it at production. Every key is issued as live or sandbox, usage is counted per environment, and the isolation is one-way by design: live consumers never see sandbox events, and a sandbox key reads live data but can never write to it. Because it reads live data, a sandbox is never empty; the traffic you control is what you publish yourself, and the documentation carries a script for exactly that.
Console
The developer portal. Sign in with an email code (no password, deliberately), create an organisation, invite colleagues, and issue and revoke API keys yourself — issuance is an owner act behind a TOTP step-up, the plaintext key is shown once, and every other owner is emailed within seconds. It also shows per-day usage, plans, and an append-only audit log of who did what.
Three guarantees the contract makes
Relay is infrastructure, so the expensive decisions were taken on day one rather than retrofitted. These are the ones an integrator is entitled to hold us to.
The wire contract does not break
Versioned envelope, additive fields only, unknown fields and unknown values ignored by clients. A change of meaning is a new URL version served beside the old one, not a new envelope.
Events expire, and that is the product
Every event carries a time to live from its type. Relay holds what is live now; the analytical copy holds the history. Nothing announces a natural expiry — the deadline is already in your hands.
No trajectories, ever
Relay takes point events, never traces. There is no vehicle identity in the contract at all, so there is nothing to pseudonymise. The publishing organisation reaches the wire as nothing at all — we can attribute an event internally, and nobody on the network can.
The network carries real events on real roads
Relay ingests the French national road network feed, published in DATEX II under Licence Ouverte 2.0, so the first request you make returns what is on the road right now — and every organisation that connects adds to the same wire.
Two sources, one contract
Every incident the national road operator publishes is on Relay within a poll cycle, carrying its licence and its upstream revision time. Events published by connected organisations arrive on the same wire, in the same envelope, and a consumer tells them apart by source_kind rather than by having integrated twice.
Coverage
France today: the national network feed, plus everything published by participants. Concession motorways and further European feeds are brought up per operator — each one a connector against the same contract, never a change to it. What is live right now.