🔒 ENTITLED
?
Every subscription on this dashboard is served over an authenticated WebSocket connection with adapter-side, per-item and per-field entitlement filtering. The same mechanism enforces role-based access across institutional Velocity clients, CitiDirect treasury entities, Citi Mobile App retail customers, and internal risk desks, all from one server, without a bespoke filtering layer per audience.
WebSocket
?
StreamSense is Lightstreamer's automatic transport selection layer (PoC Requirements Metric 5.10). It evaluates each client's network capability and selects the optimal delivery method: WebSocket for full-bandwidth connections, HTTP Streaming for degraded networks, and Smart Polling for highly constrained environments. The badge here updates live as you switch network profiles below. Try the Degraded / Link Drop profile for the single most visual proof point on this page.
CONNECTING
TRACK 1 Citi Velocity · MERGE / COMMAND / DISTINCT TRACK 2 CitiDirect / Payment Insights TRACK 3 Citi Mobile App TRACK 4 Risk & Ops · Informational LIGHTSTREAMER Kafka Connector Ready
TRACK 1 Citi Velocity — Cross-Asset Pricing & Execution
?
The primary wedge (PoC Requirements §PURPOSE & SCOPE). Citi's own published Velocity 3.0 numbers, 71% faster deal booking, 94% faster order-placement response, a 65% faster blotter, describe the platform rebuild. No equivalent last-mile delivery latency has been published. This track is the fullest-coverage track in the requirements doc (Metrics 5.1, 5.2, 5.6, 5.15).
open orders: --
CROSS-ASSET PRICING · MERGE
?
Seven of Citi Velocity's 14 synthetic price instruments, one per asset class (FX, rates, equities, credit, commodities, securitized, municipals), streaming at 3 updates per second each. The MERGE channel holds only the latest bid/ask per instrument and snapshots automatically on subscribe. In production, the Lightstreamer Kafka Connector reads directly from Citi's price-tick topics: an adapters.xml configuration change, not a new integration (Metric 5.12).
NOMINAL
DEALING BLOTTER · COMMAND
?
A multi-leg dealing blotter delivered on Lightstreamer's COMMAND channel: the server manages an ordered, keyed list, and add, update, and delete deltas push automatically as orders enter, work, and clear. This is Lightstreamer's native live-table case, not a conflated single value (PoC Requirements §4, Track 1). Target grid-update latency: under 250ms (Metric 5.6).
LIVE
OrderInstrumentStatusQtyPriceLegs
Awaiting blotter rows...
EXECUTION ACKS · DISTINCT
?
Fills, partial fills, rejects, and cancel acknowledgments on the DISTINCT channel: zero consolidation, exactly-once, in order. Target dispatch latency (server-side, isolated from network transit): under 15ms (Metric 5.2). This is the mechanism that turns "real-time" into an auditable, exactly-once feed, the property a compliance reviewer at a SEC/FINRA broker-dealer would check first.
LIVE
Published
0
Received
0
Recent
Awaiting first execution...
TRACK 2 CitiDirect Commercial Banking & Citi Payment Insights
?
Treasury and Trade Solutions. Citi Express is live in 22 of a targeted 30 markets (PoC Requirements §1). Multi-entity subscription isolation is tested separately at 10, 50, and 200 simulated entities with zero cross-entity leakage as the target (Metric 5.7).
pending auth: --
LIQUIDITY POSITIONS · MERGE
?
Eight pooled entity/account balances across four simulated corporate groups, updating at 1 Hz per account. This is the intraday liquidity-sharing view a corporate treasurer watches across a group's accounts (PoC Requirements §4, Track 2). MERGE holds the latest balance per account: no backlog, no stale figure under network pressure.
NOMINAL
AUTHORIZATION QUEUE · COMMAND
?
The Grant/Deny Debit Authority list from Citi Payment Insights, modeled as a COMMAND-mode item: pending items are added, resolved, and removed from view as a treasury operator acts on them. Target grid-update latency: under 250ms (Metric 5.6). The grant/deny action itself is architecturally a Lightstreamer sendMessage round-trip, not COMMAND (see the Requirements Targets panel below).
LIVE
PaymentAmountStatus
Awaiting authorization queue...
PAYMENT STATUS · DISTINCT
?
Rejects, returns, incoming credits, and SWIFT gpi stage transitions on the DISTINCT channel, mirroring Citi Payment Insights' own published tracking. A corporate treasurer cannot afford a missed or conflated status change on a specific payment (PoC Requirements §4, Track 2). Guaranteed delivery target under simulated link drop: 100%, zero silent misses (Metric 5.3).
LIVE
Published
0
Received
0
Recent
Awaiting first payment event...
TRACK 3 Citi Mobile App — Wealth & Retail
?
More than 25 million Citi Mobile App downloads (PoC Requirements §1). Fraud alerts are the single highest-priority event type in this track: a missed or delayed alert has a direct cost to the customer and to Citi, and is the event type most directly relevant to Regulation E's unauthorized-transfer-liability timing.
holdings/watchlist: --/--
PORTFOLIO HOLDINGS · MERGE
?
Six holdings in the app's wealth section, market value updating at 1 Hz. The live portfolio-tile view (PoC Requirements §4, Track 3). MERGE conflates gracefully under a degraded mobile connection: the tile always shows the latest value, never a backlog.
NOMINAL
WATCHLIST · MERGE
?
Six watchlist symbols, updating at 2 Hz each. This is the surface most exposed to Citi Mobile Cellular, Standard Signal connectivity (Section 3, Profile 4): 80 to 150ms latency, 0.5 to 2% loss, 1 to 5 Mbps. Adaptive throttling (Metric 5.14) keeps the connection alive and gracefully reduces frequency rather than disconnecting.
NOMINAL
ACTIVITY & FRAUD · DISTINCT
?
Two DISTINCT channels: every individual transaction (account_activity_event) and fraud alerts (fraud_alert), the highest-priority event type in this track. Both are exactly-once, in order, and unaffected by MERGE conflation. Guaranteed delivery under simulated link drop: 100% for both, zero silent misses (Metric 5.3).
LIVE
Account Activity · Published 0 / Received 0
Awaiting activity...
Fraud Alerts · Published 0 / Received 0
Awaiting fraud alerts...
TRACK 4 Internal Real-Time Risk, Limits & Exposure Monitoring
?
Architectural inference from Markets' publicly described E-Trading Controls program, not a confirmed current-state claim: DP5 has no authoritative public documentation of Citi's actual internal risk-dashboard architecture. Included so the mechanism choice is on record, informational only, ranked last, not gated on a hard pass/fail target (PoC Requirements §4 and Metric 5.13).
⚠ INFORMATIONAL — NOT INDEPENDENTLY LOAD-TESTED — NOT A CONFIRMED SALES WEDGE
Desk Exposure · MERGE
?
Four trading desks, net exposure and VaR estimate updating at 1 Hz. Reported for context only per Metric 5.13; not a pass/fail gate.
Risk Grid · COMMAND
?
Desks ranked by exposure severity, re-ranked periodically. Modeled as COMMAND per PoC Requirements §4, Track 4, since DP5 has no confirmation Citi's actual risk-tech stack works this way.
RankDeskScoreBreach
Awaiting risk grid...
Limit Breach · DISTINCT
?
An auditable, exactly-once escalation record. Published
Published 0 / Received 0
Awaiting limit breach events...
⚡ LIGHTSTREAMER DELIVERY PROOF
?
The server publishes at a constant rate regardless of any client's network condition. Lightstreamer's MERGE channel tracks the last value delivered to each connected screen and intelligently consolidates intermediate updates when bandwidth is constrained, so each screen always receives the most recent value, never a backlog. The conflation ratio shown here is server events divided by client deliveries: 1 to 1 at full bandwidth, rising as network degrades. Execution, payment, activity, fraud, and limit-breach events on the DISTINCT channels bypass conflation entirely and always deliver in full.
Data Sources to Lightstreamer
CitiStreamAdapter publish rate (items subscribed on this page)
58
updates/sec (server)
Cross-asset pricing (7)3 Hz ea.
Liquidity / portfolio / exposure (18)1 Hz ea.
Watchlist (6)2 Hz ea.
Blotter / AuthQ / Risk GridCOMMAND
Exec / payment / activity / fraud / breachDISTINCT
MERGE Conflation
?
Conflation ratio: server publish rate divided by client receive rate. At full bandwidth (Trading Desk LAN) this is 1 to 1. As network degrades toward Citi Mobile Cellular, Lightstreamer consolidates intermediate values so the screen always shows the latest price. All five DISTINCT channels bypass conflation and always deliver in full.
1:1
server events per
client delivery
Only the delta is sent.
Unchanged fields transmit 0 bytes.
Lightstreamer to This Screen
This browser's receive rate
58
updates/sec (client)
Cross-asset pricing (7)3 Hz ea.
Liquidity / portfolio / exposure (18)1 Hz ea.
Watchlist (6)2 Hz ea.
Blotter / AuthQ / Risk GridCOMMAND · live
Exec / payment / activity / fraud / breachALL · DISTINCT
📋 POC REQUIREMENTS TARGETS · DP5_PoC_Requirements_Citibank.docx §5
?
The numeric pass/fail targets this PoC's mechanism is built toward. This live sales demo shows the mechanism working; it does not itself run the captured-timestamp measurement harness, network emulator, or polling baseline comparison the requirements doc specifies (§1). That instrumented measurement is the separate, deliberately-scoped rigorous PoC engagement (see playbooks/RIGOROUS_POC_ENGAGEMENT.md), not this demo.
This panel stages the requirements doc's own targets next to what this live demo shows for each. None of the numbers below are measured by this build; they are the targets the rigorous, instrumented engagement would validate against.
MetricTargetWhat this demo shows
5.1Under 100ms e2e price-tick latencyLive MERGE price ticks, Track 1 proof panel
5.2Under 15ms exec ack dispatchCITI_EXEC DISTINCT channel, Track 1
5.3-5.5100% delivery; under 2s (T1) / 3s (T2-3) reconnectDegraded / Link Drop network profile
5.6Under 250ms COMMAND grid latencyDealing blotter & authorization queue
5.9Stable at 100% scale, headroom at 150%Self-Observability panel (reference point only)
5.10No dropped delivery across 4 network profilesNetwork Simulator, all five profiles
5.11100% exactly-once, in-order DISTINCT deliveryMaster DISTINCT event counters below
5.13Informational only, no pass/fail gateTrack 4 Risk & Ops panel
5.14Zero forced disconnects under throttlingCiti Mobile Home Wi-Fi / Cellular profiles
5.15sendMessage round-trip, 100-500ms by trackNot implemented in this synthetic build — the one architectural piece scoped for the rigorous engagement (see adapter header comment)
📡 NETWORK SIMULATOR
?
Citibank's own five network condition profiles (PoC Requirements §3): institutional trading-floor connectivity, treasury/back-office broadband, retail mobile Wi-Fi and cellular, and a full link drop. Lightstreamer adapts automatically to each with no configuration required. Use this simulator to observe how the delivery rate and conflation ratio change in the proof panel above, while every DISTINCT channel keeps arriving regardless of bandwidth.
Effective bandwidth
Uncapped
Protocol (StreamSense)
WebSocket
MERGE conflation
Off
DISTINCT events
Unaffected
Trading Desk / Markets Technology LAN: WebSocket delivers all data at full publish rate. Every price tick and blotter row arrives the instant it is published.
⚠ DISTINCT CHANNELS: EVENT DELIVERY
?
Aggregated across all five DISTINCT channels: execution acks, payment status, account activity, fraud alerts, and limit breaches. Zero consolidation, every event delivered exactly once, in sequence, regardless of network conditions. When a client loses connectivity, events queue server-side and flush the instant the connection restores. Published and received counts must always converge: that is the DISTINCT guarantee (Metric 5.11).
Published
?
Total events published since this session started, summed across all five DISTINCT channels. Advances regardless of whether any client is connected.
0
Received
?
Total events received by this browser. During a connection kill, this count pauses. On reconnect, queued events flush immediately and this count catches up to Published.
0
0
events queued during last outage
CITI_EXEC (Track 1)0 / 0
CITI_PAYSTATUS (Track 2)0 / 0
CITI_ACTIVITY (Track 3)0 / 0
CITI_FRAUD (Track 3)0 / 0
CITI_LIMITBREACH (Track 4, info)0 / 0
⚙ SELF-OBSERVABILITY
?
Computed live in this browser from the server's own event timestamps (ts_epoch), not fabricated. p50/p99 latency are real deltas between generation time and receipt time for every update this session has received. Throughput is a real rolling count of updates per second. Connection count reflects this session only: a full concurrent-connection load test is part of the rigorous engagement (Metric 5.9), not this demo.
Connections
1
p50 Latency
-- ms
p99 Latency
-- ms
Throughput
-- /s
p50/p99 measured from real server ts_epoch to browser receipt, this session only. Reference point for Metric 5.9's sustained-throughput load test (100% of scale, then 150% for headroom), which this single-browser demo does not itself run.
⚠ EVENT LOG: ALL DISTINCT CHANNELS
?
Every execution ack, payment status change, account activity event, fraud alert, and limit breach appears here in real time, tagged by channel. Events shown as QUEUED during a connection kill will flip to DELIVERED on reconnect. The sequence number (per channel) confirms no event was skipped.
Awaiting first event...
🔌 LIGHTSTREAMER SESSION LOG
?
Live event stream from the Lightstreamer client library: connection status, subscription acknowledgements, and protocol transitions. WebSocket connected means lowest-latency delivery. HTTP Streaming is the fallback for Citi Mobile Cellular conditions. Smart Polling is the last resort during a link drop. StreamSense selects the right protocol automatically.
Connecting...
HOW THIS WORKS