Skip to main content

State 014 Learning Guide

Pass intent between applications without executing a trade​

Copying a ticker between trading, charting and news applications breaks the user’s workflow. This chapter is for developers building desktop interoperability: pass instrument context and request a ticket through Sail, while preserving the distinction between preparing an action and executing it.

How to learn with TraderX states · Structured lesson JSON

Maturity: implemented. Run the exercises in a disposable local environment; use the quickstart for setup and cleanup.

Starting point​

C3 supports trading within TraderX; users still copy instrument context between applications.

Entry route: combined. Bring the knowledge from every declared predecessor.

From 012-platform-convergence-c3​

Predecessor guide

  • Carry forward: Treat C3 as a combined platform and functional checkpoint for subsequent branches.
  • Why move: C3 supports trading within TraderX; users still copy instrument context between applications.
  • Add or revise: Add FDC3 context and intent handling through Sail so another application can open a prefilled ticket.
  • Evidence to collect: The selected instrument travels between applications and the requested ticket opens. The user must still decide whether to submit; interop success is not execution evidence. Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
  • Objectives: trace-increment, interpret-evidence
BeforeAfter
C3 supports trading within TraderX; users still copy instrument context between applications.Add FDC3 context and intent handling through Sail so another application can open a prefilled ticket.

Concepts before tools​

  • Context describes a shared entity such as an instrument. An intent requests an action. Opening a ticket is neither submitting an order nor booking a trade.

Runtime prerequisites: Use the state quickstart for tool versions, generation, start and stop commands. Run one local state at a time because ports and generated output directories are shared.

Learning objectives​

  • trace-increment: Trace an FDC3 intent and instrument context into a prefilled ticket, and verify that opening it creates no order or trade.
  • interpret-evidence: Explain the evidence boundary: Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.

Guided walkthrough​

1. observe (available)​

Objectives: trace-increment.

Follow the quickstart with --with-sail. Open Sail at http://localhost:8090/html/ and use Create Order Ticket or Create Trade Ticket in tab One. Confirm the matching TraderX ticket opens with the selected ticker. Change the TraderX blotter ticker and inspect chart/news context updates.

Expected observation and meaning: The selected instrument travels between applications and the requested ticket opens. The user must still decide whether to submit; interop success is not execution evidence.

Supporting material: quickstart · architecture · runtime-topology.

2. challenge (available)​

Objectives: interpret-evidence.

Before submitting anything, compare orders and trades with their prior values. Check that opening a ticket created neither. Inspect the canonical bare ticker payload and the Sail-side exchange qualification used by the chart widget.

Expected observation and meaning: Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.

Supporting material: spec · contract-delta.

Demonstrate your understanding​

Question (trace-increment, interpret-evidence): What does a successful Create Trade Ticket intent establish?

Assessment guidance: It establishes dispatch and ticket preparation with the expected context. Only a later submission and booking evidence establish a trade; neither proves payment or settlement.

Work with a learning partner​

Use the learning-partner protocol with a human or an agent. Ask for a prediction before running the exercise, offer one hint at a time, and discuss the assessment guidance after the learner has attempted an explanation.

Objectives: trace-increment, interpret-evidence.

Check the starting point: What is the difference between describing an instrument and requesting an action on it?

Ask before the experiment: Predict whether opening a prefilled ticket should create an order or trade.

Hints, in order:

  1. Inspect the instrument context and the ticket fields before considering submission.
  2. Compare orders/trades before and after opening; distinguish the bare ticker contract from widget-specific symbol translation.

Misconception to probe (not a fact): A successfully dispatched intent means an order was submitted or a trade was booked.

Evidence to ask the learner for: Ask for the context/ticker, opened ticket type and unchanged order/trade records before submission; explain what dispatch actually establishes.

Scope and limitations​

  • Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
  • This is an educational local demonstration. Passing its checks does not establish production readiness, financial settlement, or correctness under every failure mode.

Position In Learning Graph​

Convergence Metadata​

  • Convergence state: no
  • Convergence level: none
  • Lineage role: canonical
  • Nearest previous convergence: none
  • Nearest next convergence: none

Rendered Code​

Code Comparison With Previous State​

Plain-English Code Delta​

  • Added: Orders, trades and positions start on All tickers. Each blotter has a labelled, keyboard-accessible Filter on selected ticker control and a status showing its effective ticker (or no ticker selected).
  • Added: Ticker mode stays local: selecting securities still shares FDC3 context with charts/tickets, turning filtering off restores all account rows, and opting back in uses the latest selection. Account changes and tab switches preserve modes; new windows default to All tickers even with retained context.
  • Added: Account selection propagates independently through fdc3.account. Live order updates use the configured event transport, not FDC3; snapshot reconciliation protects creates/fills/cancellations and reconnect refreshes missed data.
  • Added: Empty or invalid instrument messages retain the last valid selection; this state defines no clear-instrument message. Before any selection, an opted-in blotter shows all tickers and explains why.
  • Added: FDC3 interop adapter in TraderX frontend for DesktopAgent integration.
  • Added: Outbound fdc3.instrument context publishing when a user selects a ticker-bearing row in trade/order/position views.
  • Added: Inbound fdc3.instrument context handling that retains shared selection for optional blotter filters and ticket defaults.
  • Added: Standard intent handling for ViewOrders (orders view routing without implicit filter opt-in).

Run This State​

./scripts/start-state-014-fdc3-intent-interoperability-generated.sh