Integration Lab · Public protocol preview

Test the feed contract in your browser.

Run a repeatable live-soccer scenario through CDS v1—REST discovery and snapshots, WebSocket updates, and cursor recovery. No sales call is required for this protocol preview.

  • Deterministic fixture
  • No live upstream
  • Live phase only
  • Non-production
  • No credentials required
What you are testing

This is an interactive protocol simulator using the same resource shapes, cursor rules, and lifecycle as the standalone CDS v1 Integration Lab. It cannot access the enterprise betting platform.

Interactive protocol simulator

Inspect REST state. Then replay the stream.

Everything below runs locally in this browser with the deterministic v1 fixture. No credential is sent and no production system is contacted.

GET/v1/access

Discover the contract version, enabled capabilities, and connection limits.

SIMULATED 200
{
  "environment": "sandbox",
  "api_version": "v1",
  "contract_version": "1.0.0",
  "customer_id": "cus_lab_local",
  "expires_at": null,
  "scopes": [
    "access:read",
    "coverage:read",
    "data:read",
    "replay:read"
  ],
  "capabilities": {
    "rest_snapshots": true,
    "cursor_recovery": true,
    "websocket_streaming": true,
    "deterministic_replay": true,
    "live": true,
    "prematch": false
  },
  "limits": {
    "max_concurrent_streams": "1",
    "max_changes_per_page": "100",
    "stream_ticket_ttl_seconds": "60"
  }
}

Connection lifecycle · cds.v1

Live soccer lifecycle

Ticket → snapshot → changes → disconnect → cursor resume → heartbeat.

Demo Premier LeagueSynthetic live
HomeNorthbridge FC

Waiting

AwayRiverside Athletic
MarketMatch Winner
Pending
Northbridge
Draw
Riverside
Connection
Ready
Last activity
Awaiting connection
Committed cursor
Not committed

0 timeline steps applied

Protocol timeline0 steps
  1. Start the walkthrough or inspect one step at a time.
Latest message / action
// Messages and actions appear here as the replay runs.
View the subscription message used by this replay
{
  "type": "subscribe",
  "request_id": "browser-preview-1",
  "filters": {
    "phases": [
      "live"
    ],
    "sport_ids": [],
    "competition_ids": [],
    "event_ids": [],
    "resource_types": [
      "sport",
      "competition",
      "participant",
      "event",
      "market",
      "selection",
      "odds_quote",
      "score",
      "gamecast",
      "settlement"
    ]
  },
  "resume_from_cursor": null,
  "include_snapshot": true,
  "replay_scenario_id": "live-soccer-lifecycle"
}

What the replay proves

A small scenario that exercises the hard integration rules.

The point is not a flashy demo. It is to let an engineer verify how state is discovered, staged, changed, and recovered.

  • 01
    Access and coverage discovery

    The client learns that live is available and prematch is unavailable.

  • 02
    Atomic initial state

    Resources are staged until the snapshot completion cursor can be committed.

  • 03
    Ordered resource changes

    Odds, score, gamecast, and market status advance with string versions.

  • 04
    At-least-once recovery

    The last durable cursor is the only safe position from which to resume.

AI-assisted integration

Give your coding agent the invariants, not a vague API request.

This brief tells an agent how to build a safe first client without exposing credentials, skipping recovery, or treating numeric-looking identifiers as numbers.

integration-brief.txt
Integrate Core Data Services feed contract v1.

Requirements:
- Discover /v1/access and /v1/coverage at startup.
- Keep every ID, cursor, sequence, version, odd, and line as a string.
- Stage snapshot resources until snapshot.completed, then atomically expose them.
- Apply upserts and deletes idempotently by resource_type, resource_id, and version.
- Persist a cursor only after its state mutation is durable.
- On reconnect, mint a new one-use stream ticket and resume from the last committed cursor.
- Treat heartbeat.latest_cursor as a liveness watermark, not an applied-state checkpoint.
- If a cursor is rejected or a gap is reported, fetch a fresh snapshot; never invent state.
- Prematch is unavailable until coverage explicitly reports it available.

First produce the smallest client, schema validation, reconnect test, and an integration report. Do not deploy or use production credentials.

Deliberate limits

What this test does not prove.

The browser test does not prove production coverage, source latency, uptime, prematch, tombstones, settlement corrections, or durable server-side replay. Those require the hosted lab and production acceptance checks.

  • One fictional soccer event
  • Fixed, repeatable timing
  • No customer or upstream data
  • No production credentials

Guided Integration Lab

Need reusable lab access and help in your stack?

The guided Integration Lab is $99/month. Until self-service checkout and automatic provisioning are live, activation is arranged manually and confirmed before payment.

Non-production$99/monthRequest guided Lab access

Sample, replay, or delayed data. No commercial production rights or redistribution.