Milestone 1 snapshot for the Canton Fast Lane proposal: the protocol and client foundation for low-latency, explicitly non-final signaling between Canton-connected systems.
This repo intentionally includes only the Milestone 1 scope from the proposal:
- a schema library for
SignalEnvelope, acknowledgements, and session control messages - a JVM channel adapter boundary shaped around Canton's current sequencer-channel client surface
- a TypeScript SDK boundary for point-to-point signaling integration
- technical documentation that clearly separates non-final signaling from ledger-backed finality
This repo intentionally does not include the later milestone work:
- reconnect and resume orchestration
- replay protection and stale-message recovery flows
- bounded resend policies
- reference apps and live proof harnesses
- DevNet tooling, dashboards, and operator packaging
These files map directly to the proposal’s Milestone 1 promises:
Use this foundation when:
- the message is advisory, preparatory, or operational
- low latency matters more than ledger durability for the signal itself
- the real business commitment will still happen later through normal Canton or Daml execution
Do not use this toolkit as:
- a settlement layer
- a payment or custody protocol
- proof that a Canton business event has already committed
- a replacement for ledger-backed finality
- Node.js 24.x recommended
- npm 11.x
- Java 17
npm installnpm run buildnpm testpackages/protocol: protobuf schema, typed signaling envelopes, payload hashing, validation, and codec helperspackages/sdk: Milestone 1 TypeScript client boundary with session hello, signal send/receive, acknowledgement tracking, and an in-memory storejvm/adapter: Milestone 1 JVM adapter seam and compatibility surface for a future Canton-backed gatewaydocs/milestone-1-scope.md: usage boundary and Milestone 1 scope notes
This repository is deliberately scoped to Milestone 1 only. Later proposal milestones cover:
- reconnect and replay handling
- recovery after restart
- reference applications
- use-case packs
- operator integration guides
Those are intentionally left out here so this repo stays aligned with the Milestone 1 acceptance slice.