Skip to main content

Integrating FDC3 in TraderX: What Worked, What Was Flaky, What We Learned

State 014-fdc3-intent-interoperability was our first end-to-end pass at wiring FDC3 interaction patterns into a live TraderX environment.

The goal was straightforward: prove that intent-style interoperability is practical in a realistic demo stack, not just in isolated snippets.

Why This State Matters

This state shows that a single TraderX deployment can coordinate:

  • pricing and market-data context,
  • order-management workflows,
  • chart and news views on separate tabs,
  • and FDC3-based action routing between apps.

In short, it demonstrates the point of FDC3 in an environment people can actually run and explore.

For FDC3 background, see fdc3.finos.org.

What We Built

To make the integration explicit and easy to understand, we introduced a separate Sail app that dispatches TraderX-related FDC3 events.

That gave us a clear place to:

  • map UI actions to FDC3 payloads,
  • push context on channels,
  • and route action-specific behavior without entangling every component.

It is not the final elegance target, but it is a practical and inspectable starting point.

Where We Saw Flakiness

During integration and demo validation, we ran into several reliability pain points:

  • High-volume heartbeat and context-sync logs obscured signal during debugging.
  • broadcast-driven button flows were less deterministic than raiseIntent flows in some paths.
  • Tab/channel context timing was easy to get wrong when multiple widgets were syncing state.
  • TradingView interactions exposed symbol-normalization mismatches across components.

One concrete pattern: raising intent from the trade list path behaved consistently, while some button-triggered paths required tighter alignment of context/action payloads before behavior was reliable.

Symbology Lessons (and Why CDM Helps)

Symbol normalization turned out to be one of the biggest practical interoperability issues.

Even with a common ticker value (AAPL), differences in source assumptions and widget behavior can create subtle drift in how symbols are interpreted or propagated.

This is exactly where broader semantic normalization helps. A stronger shared model such as CDM should reduce these integration seams over time.

For CDM background, see cdm.finos.org.

Why This Is Still a Strong Result

Despite the rough edges, this state proves real value:

  • We can run a self-contained demo with FDC3 behavior that is visible and testable.
  • We can show intent/context propagation across independent app surfaces.
  • We now have a concrete baseline for hardening, not a theoretical design.

There is much more we can make it do, but this already demonstrates the core interoperability point with live, inspectable software.