apidays New York 2022 - Beyond API Regulations for Finance, Insurance, and Healthcare
July 27 & 28, 2022
Go Big or Go home by RBC Capital Markets
Josh Carroll, Managing Director, Global Head of Architecture & Shared Application Services at Royal Bank of Canada Capital Markets
------------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
Deep dive into the API industry with our reports:
https://www.apidays.global/industry-reports/
Subscribe to our global newsletter:
https://apidays.typeform.com/to/i1MPEW
Unblocking The Main Thread Solving ANRs and Frozen Frames
apidays New York - Go Big or Go home by RBC Capital Markets, Josh Carroll, RBC Capital Markets
1. RBC Capital Markets
July 2022
Go Big or Go Home
Joshua Carroll
Managing Director
Global Head of Architecture & Shared Application Services
Quantitative & Technology Services (QTS)
2. 2022 SERIES OF EVENTS
New York
JULY
(HYBRID)
Australia
SEPTEMBER
(HYBRID)
Singapore
APRIL
(VIRTUAL)
Helsinki & North
MARCH
(VIRTUAL)
Paris
DECEMBER
(HYBRID)
London
OCTOBER
(HYBRID)
Hong Kong
AUGUST
(VIRTUAL)
JUNE (VIRTUAL)
India
MAY
(VIRTUAL)
APRIL (VIRTUAL)
Dubai & Middle East
JUNE
(VIRTUAL)
Check out our API Conferences
www.a pida ys .globa l
Want to talk at one of our conferences?
apidays.typeform.com/to/ILJeAaV8
3. RBC Capital Markets
2
Joshua Carroll @ RBC CM
Architecture & Shared Application Services
• 150+ People in multiple teams across Canada, USA, UK & Asia Pacific
CM Architecture
QA Automation
Data Fabric (Big Data)
Compute Fabric (Docker / Containerization)
Market Data Technology
Middleware Messaging / Event Driven Architecture
Symphony Chat Messaging & Chat-Bots
Environment & Resiliency Management
Monitoring & Scheduling Automation
4. RBC Capital Markets
3
RBC Capital Markets
Vancouver
Calgary
San Francisco
Los Angeles
Denver
Houston
Chicago
Toronto
Montreal
Atlanta
Boston
New York
Paris
Mumbai
Beijing
Hong Kong
Sydney
Singapore
Frankfurt
Major Trading Hubs Coverage Offices
Madrid
Tokyo
London
... and 40 other cities around the world
Top-10
Global
Investment Bank
Over
6,400
professionals around
the globe
Footprint covers over
84%
of global investment
banking fee pool
Serving
15,500
clients in over
100 countries
Operating from
63
offices in
14 countries
• Deep expertise in capital markets, banking,
and finance
• Recognized by significant corporations,
institutional investors, asset managers,
private equity firms, and governments around
the globe as an innovative, trusted partner
• Well-established in the largest, most mature
capital markets
An Innovative, Trusted Partner
7. RBC Capital Markets
6
Event Driven Architecture @ RBC CM
Feb 2020 (Pre-Covid)
67 Billion Events a day
Mar 2020 (Covid)
94 Billion Events a day
Feb 2022 (Russia/Ukraine war)
118 Billion Events a day
June 2022
124 Billion Events a day
100% growth ~ 2 years
No ‘Whoops, something went wrong..’ allowed!
8. RBC Capital Markets
7
Event Driven Architecture @ RBC CM – Platform Overview
124B+
Messages / Day
Trades, Orders, Market
Data
& Internal Application
messages
30,000+
Application
Connections
75M
Unique
instruments
300+
Internal & External
Applications
6
Geographic
locations
220+
Trillion Bytes of data per
day
New York
Toronto
Sydney
Tokyo
London
Singapore
RBC NETWORK
10. RBC Capital Markets
9
How Did We Get There Back to the Future
2010 – Where We Were
• Multiple platforms in place Reuters
Market Data System (RMDS aka
TREP / Refinitiv), Tibco RV and
EMS, IBM MQ, 29West LBM & RAI
Technology.
• Costs of existing platform
increasing for own data distribution
• No new functionality in years
• Very large server footprint to
support the data volumes
• Adding new services needed to
restart whole environment globally
• Data Dictionary changes affected
every application
Key Features We Were Looking For
• Dynamic discovery of new topics / published
• Last Value Cache Query Capability
• Subscribe to unknown symbols without
causing service degrading via re-requests
• Ability to add/change services and
components without affecting whole system
• Free our market data messaging technology
from the data-feed vendors
• Ability to scale quickly and exponentially
11. RBC Capital Markets
10
Platform Overview
Single
Enterprise
Event Driven
Architecture
API &
Wrappers
Big Data Monitoring
• Single Message bus
• Routing & Clustering
• Cloud Connected
• Data Recording
& Retention
• Message Replay
• Messaging APIs
• Standardized
Adapters
• Monitoring Alerts
• Visualizations
• Capacity Planning
12. RBC Capital Markets
11
EDA @ RBC CM - Solace Event Broker
Patterns
Hardware on Prem
Protocols
• Dynamic Message
Routing
• Message Replay
• Streaming,
Queueing,
Request/Reply
• Slow Consumer
Handling
• WAN Optimization
• HA and Security
Features
Software in Cloud
Publish/Subscribe (Fanout)
Request/Reply
Streaming
Point to Point
Aggregation / Fanin
Seamless Interoperability and Support for all
13. RBC Capital Markets
12
EDA @ RBC CM – Architecture
RBC datacenters extended into various public cloud providers
Solace on-prem to Cloud
App A App B App C App D
RBC On-Premise
14. RBC Capital Markets
13
Direct and Guaranteed Messaging & Caching
DR
PROD
SQMS (SAN) SQMS (SAN)
DR
PROD
SQMS (SAN) SQMS (SAN)
New York
DR
PROD
SQMS (SAN)
SQMS (SAN) Toronto
Singapore
DR
PROD
SQMS (SAN)
SQMS (SAN)
SolCache
SolCache SolCache
SolCache SolCache
SolCache
SolCache
SolCache
RBC
NETWORK
*SQMS – Secure Queue Management System – SAN – Encrypted Storage Area Network
SolCache – in-memory, last value cache Solace Appliance
Additional Sites
Tokyo
Sydney
AWS (VMRs)
Azure (VMRs)
15. RBC Capital Markets
14
EDA @ RBC CM – API Overview - Open Standards
• JMS 1.1 & 2.0
• Cloud-native APIs
(Spring, REST and WebSocket)
• IoT
(MQTT)
• Enterprise
(JMS, REST, AMQP)
• Open APIs & Protocols
• Eliminates protocol
lock-in
• Connectors for
integration
16. RBC Capital Markets
15
RBC Messaging API Wrappers
Internally supported API wrappers
Java Real-Time Optimized (RTO) - a low-latency Java Native Interface (JNI) wrapper for the C API.
JMS – see standard spec next slide
17. RBC Capital Markets
16
RBC Messaging API Wrappers – Minimum Standards
In order to run a reliable and supportable messaging backbone a minimum set of standards has set.
(This allows any supported API can be used to connect with using a wrapper)
Minimum messaging requirements to connect to platform:
1. Generate Sender ID
2. Generate Sender Timestamp
3. Re-apply topic/queue subscriptions automatically when the session is disconnected and connected back.
4. Set Auto Acknowledgment
5. Set the reconnect retries to reconnect indefinitely during a disconnect.
6. Publishers are required to generate a unique sequence number for every message published.
7. Publishers who need last value cache must use the “setUserData” property for those messages and set it to one of the
following: Initial, Update, Drop and Stale.
8. Publish Application Heartbeats on specific topics – so the application can be identified on the message bus for auditing -
<appCode>/<userId>/<clientName>/<machineName/processId/sessionId>/<wrapperVersion>/<APIVersion>
Can we used to help determine API versions for upgrades
9. When using fee-liable content (known as External Pricing – EP Topics) will need to use an API that understands On-
Behalf-Of subscriptions.
18. RBC Capital Markets
17
RBC Messaging API Wrappers
In addition to the minimum specs the following platform features or support is available
Refinitiv DACS (Data Access Control System) Entitlement Agent / Bloomberg EMRS Notification Messages (on-
behalf-of subscription support for external entitlement systems)
SolCache support and new topic advertisement notifications of new instruments now seen in the cache
Notifications of WAN link outage/restoration.
Request/Reply functionality (similar to Tibco’s RV inbox method)
Available Topic API for polling SolCaches for list of instruments & then making subscriptions
Sample code for all main features.
Inner-source available for contributed code (GitHub)
19. RBC Capital Markets
18
Key Features Of Our Event Driven Architecture
Dynamic discovery of new topics / published
Last Value Cache Query Capability
Subscribe to unknown symbols without causing service degrading via re-requests
Ability to add/change services and components without affecting whole system
Free our market data messaging technology from the data-feed vendors
Ability to scale quickly and exponentially
Additional benefits gained
Reduction of server footprint in datacenters - 500+ servers compared to only 60+ Solace appliances
Leading to significant $ savings
Enabled separation of our market data messaging technology from the data-feed vendors
Enabled negotiation power over the market data vendors as not tied to their technology platforms
20. RBC Capital Markets
19
Topic Hierarchy – Single Data Highway
REGION
NY|LN|TO|HK|SY|TK.
This denotes the physical location of the publisher of a
topic.
BUSINESS UNIT
GE|GELP|FI|FX|COM|FUT|ITS|RSK.
This Denotes the business Unit.
DATA TYPE
IP|EP|R|H|DTO|S|G.
IP Internal Prices, EP External Prices, R RequestReply,
H Heartbeat, DTO Deliver To One, S Standardized,
G Generic data types
APPCODE
4 letter appcode
APPNAME & INSTANCE
4-5 letter real AppName and 4 letter instance info ie
RATS0001
SCHEMA
Up to a 4 letter code denoting any Schema or
Application Version number.
Default is “0” meaning no specific schema or version
number in use.
CONTENT TYPE
2-4 letter description of the Content in the payload. The
sections below will further define the Content Types
under each of the Data Types.
22. RBC Capital Markets
21
Future - Distributed Trace Integration with Event Portal
• Event Brokers will generate “Open Telemetry” events view using popular
frameworks like DataDog (Cloud) or Jaeger (on-premise)
• Publishing apps will have the ability to inject tracing identifiers into events,
making it possible to correlate all the events related to one business
transaction
• Your apps can extract a “Trace ID” from a received event, and insert
that ID into one or more new published events
Publisher
Consumer
Event SLO
Exceeded
Time on Queue:
12 minutes
Real-Time Event
Path View
Driver ID: 9834934
Trace ID: 039434094
• Distributed Tracing allows you to follow an event all the way through your
organization from event creation to its ultimate destination(s)
• Eliminates any doubt among participants around whether an event or transaction
happened
• A trace can involve one or many producers, brokers, and consumers in your Event
Mesh
• Combine expected event path
from Event Portal with the
actual event path from
distributed tracing
• Allows for:
Rapid troubleshooting
SLO enforcement
Performance analysis
Visual auditing