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.