SlideShare a Scribd company logo
1 of 42
CLIMBING MOUNT
                         COMPLEXITY, ONE
                         EVENT AT A TIME




                                   David VINCENT – CTO




© 2009 smartTrade Inc.
Presentation Agenda



                         1. Liquidity Management Playground

                         2. Liquidity Management Foundations

                         3. Implementation challenges

                         4. QuickFix/J and SmartTrade LMS

                         5. ESPER and SmartTrade LMS




 © 2009 smartTrade Inc
© 2009 smartTrade Inc.
Liquidity Management Play Ground




© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Flows in presence




© 2009 smartTrade Inc.
Various objectives

                         •   Best execution

                         •   Best services to clients ( market impact, orders management )

                         •   Algo

                         •   Market

                         •   Venues

                         •   Cross-Asset




© 2009 smartTrade Inc.
Business and Economical Dimension

                         •   Business

                              •   Pricing / Rules / Decision making

                              •   Automated Market-Making ( active / passive orders ) to clients and
                                  venues

                              •   Creating Dark Pools

                              •   Pre-matching, Best Exec (RegNMS, MIFID,...)

                              •   Access to Liquidity / Connectivity

                              •   High Velocity flows

                         •   Economical

                              •   Market impact

                              •   Execution and clearing fees control

                              •   More Value/Less Risk/ More Flows

© 2009 smartTrade Inc.
Functional Dimension

                         •   Supporting various market discovery modes

                              •   Streaming

                              •   Request For Stream

                         •   Supporting various trading modes

                              •   Orders

                              •   RFQ

                         •   Multi Leg patterns

                              •   Basis trading

                              •   Synthetic products




© 2009 smartTrade Inc.
Technical Dimension

                         •   Moving targets – always

                         •   Complex interacting processes

                         •   Old legacy systems part of the game

                         •   Low latency

                         •   Scalability

                         •   High Availability – zero error acceptance

                         •   Integration – openness, flexibility, interoperability, acceptability by
                             IT teams




© 2009 smartTrade Inc.
Liquidity Management Foundations




© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Foundation of Liquidity Management




                   Liquidity Aggregator           Liquidity Crosser     Liquidity Orchestrator    Liquidity Connect




                                          All components can be used individually, or combined,
                                             to help solve entire Liquidity Management needs.




© 2009 smartTrade Inc.
The Internal Market Paradigm

                         •   Virtualization of all trading flows at the enterprise level: complete
                             internal market state model

                         •   Full lifecycle management of all inbound and outbound instructions
                             and orders

                         •   Complex distribution and liquidity management strategies
                             (orders types, price aggregation, smart routing, internal crossing,
                             internalization, multi-leg strategies, price-tiering)

                         •   Easy-to-add new products and automated rules

                         •   Seamless integration to current & existing infrastructures for a short
                             time-to-market implementation (including transport)

                         •   Connectivity: Liquidity Connect




© 2009 smartTrade Inc.
Generic Liquidity Management System




© 2009 smartTrade Inc.
Implementation challenges




© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Key Technology Factors

                         •   Common Data Model
                              • Explicit messages & structures of data shared across the platform are defined
                                 in a domain specific XML file data model
                              • Extensive Cross-platform code generation ( Java, .NET, C++ )
                              • Extensibility – static and dynamic data model fields & structures
                         •   Open Messaging
                              • Decouples messaging middleware dependencies from internal architecture
                              • Allows several messaging transports to connect to the same container
                              • Leveraging client’s existing deployments
                         •   Dependencies Injection
                              • Offers a easy way to create assemblies of components; allows very flexible
                                 configurations
                         •   Deployment Supervision
                              • Mix between Agent based approach (non-intrusive) & JMX
                              • Component configuration ; Supervision & Lifecycle Management
                              • Web based application allowing monitoring of:
                                   - Hardware state ( CPU, Processes, Disks, Memory )
                                   - Application state ( Threads, Heap )
                                   - Custom Metrics via JMX plug-ins framework
© 2009 smartTrade Inc.
Development Approach

                         •   SCRUM Methodology
                              • Agile approach to software development & program management,
                                enabling fast and iterative deliveries to clients.
                              • A key principle of Scrum is its recognition that during a project the
                                customers can change their minds about what they want and need,
                                so its gives valuable flexibility to these unpredicted challenges.

                         •   XP (Extreme Programming)
                              • A disciplined approach to software development.
                              • XP empowers developers to confidently respond to changing
                                 customer requirements, even late in the life cycle.
                              • It stresses customer satisfaction. So projects will experience greater
                                 success and developer productivity.

                         •   High Involvement in Open Source World
                              • Open Source development philosophy internally
                              • Contributor in multiple OpenSource projects
                              • Project lead of QuickFixJ OpenSource Java FIX engine


© 2009 smartTrade Inc.
QuickFix/J : a pure Java FIX Engine




© 2099 smartTrade Inc
© 2009 smartTrade Inc.
What is FIX ?

                         •   Financial Information eXchange

                         •   Created in 1992.

                         •   Free, open technical specification for electronic communication
                             of trade-related messages.

                         •   Maintained by FIX Protocol Ltd.
                              • Volunteer team

                         •   In wide use (exchanges, banks, …)

                         •   Global adoption




© 2009 smartTrade Inc.
FIX protocol layers

                         •   Session Protocol
                              • Message format, header, footer
                              • Logon/Logoff
                              • Heartbeats
                              • Sequence number synchronization

                         •   Application Protocol
                              • Message formats and semantics
                              • Order submittal and execution
                              • Quoting
                              • Market data
                              • Other (email, news, …)

                         •   Representation
                              • ASCII Tag/Value
                              • FIXML (XML, Tag/Value envelope)
                              • Example Message:
                              • 8=FIX.4.19=6135=A49=INVMGR56=BRKR34=152=20000426-
                                 12:05:0698=0108=3010=157


© 2009 smartTrade Inc.
What is a FIX Engine ?

                         •   Session protocol implementation
                              • Messages and behavior

                         •   Supports application messages
                              • Behavior is application-specific

                         •   Eases trading counterparty connectivity

                         •   “The nice thing about standards…”
                              • Many variations




© 2009 smartTrade Inc.
QuickFix/J Open Source Project
                         •   Spin off of the QuickFIX C++ project
                              • Native C++
                              • Java via JNI

                         •   QuickFix/J motivators
                              • Interesting domain
                              • Integration/deployment issues w/JNI
                              • Free FIX engine for Java clients
                              • No existing OSS Java FIX engines
                              • Unhappy with existing vendors ( Price, Support )
                              • Unhappy with “homebrew” engines

                         •   History
                              • Discussed on QF lists and wiki
                              • November 2004 : QFJ work started in by Steve BATE
                              • Help from Smart Trade on the port
                              • Mid-July 2005 : 1.0.0 beta released
                              • December 2008 : Smart Trade Technologies takes over the project lead
                              • February 2009 : 1.4 released

                         •   http://www.quickfixj.org
© 2009 smartTrade Inc.
QuickFix/J Elements

                         •   FIX metadata (XML)
                              • Parser, Pretty Printing, Validation

                         •   Generation of Message-related code
                              • Uses Java, XSLT, and XML metadata
                              • Java message and field definitions (FIX 4.0 – 5.0, Serializable )
                              • Message Cracker (type safe dispatcher)

                         •   Application
                              • Interface implemented by users
                              • Several callbacks (Session creation, Logon/Logoff, Message sent/recvd).

                         •   Session
                              • Implements FIX protocol
                              • Data dictionary
                              • Message Factory
                              • Message Store (file, JDBC, BDB)
                              • Session Log (file, JDBC, console)
                              • Settings (file)


© 2009 smartTrade Inc.
QuickFix/J Elements

                         •   Connection management
                              • Socket Initiator (usually buy side)
                              • Socket Acceptor (usually sell side)
                              • Single or multithreaded
                              • NIO using MINA
                              • Alternate implementations possible

                         •   Acceptance Testing tools
                              • declarative test definitions derived from FIX spec,
                              • JUnit based

                         •   Unit testing tools
                              • fills coverage gaps in acceptance testing
                              • JUnit based

                         •   Cruise Control
                              • Continous integration support
                              • Builds product and executes tests

                         •   Example applications and code samples

© 2009 smartTrade Inc.
QuickFix/J Benefits
                         •   Covers the full FIX connectivity scope
                              • Supports FIX versions 4.0 - 4.4, 5.0/FIXT1.1
                              • Scheduling of session connections
                              • Failover and High Availability

                         •   Open Source
                              • Free! It costs nothing and has a very liberal open source license.
                              • Full source code available (also at no cost).

                         •   Native Java
                              • Runs on any hardware and operating system supported by 1.4+ Java SE or
                                 compatible VM.
                              • Supports embedded SSL with Java 5+
                              • Provides standard JMX MBeans for FIX engine management
                              • Easy to embed in existing Java applications

                         •   Highly Customizable
                              • Support for protocol customizations (new messages, fields, constraints).
                              • Session state storage plugins: JDBC, File, SleepyCat/JE, In memory
                              • Logging plugins: JDBC, File, SFL4J (supports JDK1.4 logging, Log4J, Commons
                                 Logging), Console, Composite

© 2009 smartTrade Inc.
QuickFix/J inside the Smart
                                 Trade LMS



© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Liquidity Connect Architecture

                         •   Connecting N world to P world

                         •   Enterprise Integration Patterns implementation
                              • Not yet CAML ☺
                              • Router / Translator / Interceptor Chains

                         •   Connector
                              • Abstract the API to connect to a specific world
                              • Manages life cycle of the connection ( ready, down, stale.. )
                              • Receives and transmits message to an interceptor chain

                         •   Interceptor chain
                              • Unidirectional
                              • Pass messages along different components
                              • Connector is always at the start and the end of a chain
                              • One to many relationship : 1 connector -> N connector

                         •   Bridge
                              • Assembly of connectors and interceptor chains
                              • Spring based definition

© 2009 smartTrade Inc.
Liquidity Connect Architecture
                          •   A –B Bridge




                          •   A – BC Bridge




© 2009 smartTrade Inc.
STTP Connector

                         •   Connecting Smart Trade LMS world to P world

                         •   Using the Smart Trade STConnect API

                         •   Normalizing data into the Smart Trade canonical model
                              • Translator interceptors




© 2009 smartTrade Inc.
QuickFIX/J Connector

                         •   Connecting Smart Trade LMS world to FIX world

                         •   Using QuickFix/J Fix engine and libraries

                         •   Normalizing data into the FIX canonical model
                              • Translator interceptors to manage versions
                              • Support Custom fields




© 2009 smartTrade Inc.
QuickFix/J and ST LMS




© 2009 smartTrade Inc.
ESPER CEP




© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Esper Open Source Project

                         •   Mission
                              • CEP a natural and easy task of your application
                              • Open platform to create competitive differentiators and maximize
                                 reuse

                         •   ...and therefore
                               • Lightweight and embeddable into any Java technology process
                               • Open source
                               • Low latency and high throughput

                         •   Project background
                              • 3 years of development, 100% Java
                              • NEsper for .NET/C#, same semantics

                         •   Dual licensing Enterprise/OEM/Open Source model
                              • Open source for open source use (GPL license)
                              • Commercial for redistribution by ISVs
                              • Services & support (dev, 8x5, 24x7)

                         •   http://esper.codehaus.org

© 2009 smartTrade Inc.
Esper Products Offering

                         •   ESPER
                              • ESP/CEP with expressive Event Processing Language
                              • Continuous queries, aggregation, joins, causality and missing events,
                                 joins to historical data, output flow control...
                              • Standalone or Embedded

                         •   ESPER HA
                              • Out-of-heap storage, complete resiliency to disk, or local in-memory
                                 caching
                              •   Clustering and hot backup capabilities for event and streams state

                         •   ESPER ENTERPRISE EDITION
                              • Esper Studio: Operational console for runtime management, real-
                                 time event stream views and ad-hoc queries
                              •   EsperJMX: Runtime management and monitoring over standard JMX
                                 connectors
                              •   EsperJDBC: JDBC compliant client and server endpoints for
                                 interoperability

                         •   NESPER
                              • ESPER for C#/.NET

© 2009 smartTrade Inc.
Esper Key Benefits

                         •   ESPER Integrated ESP and CEP and expressive EPL language

                         •   Rapid development, test and reuse of existing code
                              • Java libs, other open source fwk, Eclipse IDE etc.

                         •   Performant & lightweight
                              • Server-less if needed
                              • Possible use of Real-Time JVMs
                              • Multi-platform (Java / .Net, 32/64 bits, multiple OS support)

                         •   Ease of integration in existing platforms or standards
                              • Spring Framework
                              • Enterprise Integration Technologies

                         •   Management console, runtime management, standard based
                             (JMX)




© 2009 smartTrade Inc.
ESPER inside the Smart Trade
                                     LMS



© 2099 smartTrade Inc
© 2009 smartTrade Inc.
Why integrating with ESPER CEP ?

                         •   CEP are NOT Liquidity Management Systems…… They are
                             complementary

                         •   Smart Trade
                              • “Smart Trade’s customers will be able to rely on a domain-specific
                                CEP for their SOR, crossing and aggregation strategies on top of
                                already existing programmable rules that our liquidity management
                                system produces and implements to ensure best execution for their
                                firm and clients. This clearly proves that CEP and liquidity
                                management are complementary technologies.”
                                      David VINCENT – co-founder and CTO


                         •   Esper Tech
                              • "The EsperTech and SmartTrade agreement combines and extends
                                 our open-source roots to maximize fit for purpose and confidence
                                 while minimizing costs for Reg NMS and MiFID best-execution
                                 deployments. This once again confirms how our enterprise-ready and
                                 open-source CEP makes sense in today’s world across all industries.”
                                      Thomas BERNHARDT, founder and CEO

                         •   OEM Agreement between Smart Trade Technologies and Esper
                             Tech signed in February 2009

© 2009 smartTrade Inc.
ESPER Plugin
                         •   Domain specific integration
                              • Creation of complex stream on the fly
                              • Manipulating a Domain Specific model

                         •   Wrapping the ESPER 3.2 runtime into STContainers
                              • Rely on EPServiceProvider, EPStatement and the other friends
                              • Using Spring
                              • Extending the ESPER engine with specific behaviour ( ex : sorting )

                         •   Wrapping the Smart Trade canonical model with Event
                              • Ex : MarketDataSnapshot => MarketDataSnapshotEvent
                              • Ex : NewOrderSingle => NewOrderSingleEvent
                              • Using model extensibility to add EPL return statement fields




© 2009 smartTrade Inc.
Liquidity Aggregator’s ESPER Plugin

    •           Integration with the STConnect API
                 • Allows to interact remotely with the ESPER Engine
                 • Creating and consuming EPL queries from external process
                 • Chosing feed sources

    •           “Plumbing” Liquidity sources events to the ESPER engine
                 • Source of data
                 • Distribution End point




© 2009 smartTrade Inc.
Examples of ST / EPL use
      •          Average Bid in the last 30 seconds window

                                                select avg(price.value) as PriceAverage from
                                 MarketDataSnapshotEvent(MDReqID.value=‘XXXX')[bidEntries].win:time(30 sec)



      •          Instant BestBid / BestOffer spread

                              select bestAggregatedOffer.price.value-bestAggregatedBid.price.value as Spread from
                                               MarketDataSnapshotEvent(MDReqID.value=‘XXXX')


      •          Average BestBid / BestOffer spread in the last 30 seconds window

                            select avg(bestAggregatedOffer.price.value-bestAggregatedBid.price.value) as Spread from
                                        MarketDataSnapshotEvent(MDReqID.value=‘XXXX').win:time(30 sec)



      •          VWAP
                                                      select average as VWAP from
                         MarketDataSnapshotEvent(MDReqID.value=‘XXXX')[bidEntries].win:stat:weighted_avg(price.value,
                                                              quantity.value)




© 2009 smartTrade Inc.
Liquidity Orchestrator’s ESPER Plugin

    •           Generating complex events to be managed by the rules
                 • From aggregated or raw market data
                 • From order life cycle events ( Fills, Cancelation, unsollicitated messages )
                 • From external functional events ( Risk exposure,..) to technical events (
                   Latency, ..)

    •           Separating the events monitoring logic from the actions
                 • A clean Action / Reaction model
                 • A way to layer the rules coding




© 2009 smartTrade Inc.
ESPER and ST LMS




© 2009 smartTrade Inc.
Questions




© 2009 smartTrade Inc.
Please contact


Europe                           United Kingdom
Tel : + 33 1 44 50 19 19         Tel.: +44 (0)20 3326 0522
Fax: + 33 4 42 97 62 52          Fax: +44 (0)20 7491 7976
hgozlan@smart-trade.net          njames@smart-trade.net


North America
Tel.: +1 212 618 6383
Fax: +1 212 618 6309
mbailey@smart-trade.net

www.smart-trade.net

More Related Content

Similar to Climbing mount complexity, one event at a time

Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
mfrancis
 
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSystWhat OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
mfrancis
 
VMware Zimbra vs. Novell Groupwise
VMware Zimbra vs. Novell GroupwiseVMware Zimbra vs. Novell Groupwise
VMware Zimbra vs. Novell Groupwise
Mike K
 
Orc For Market Making
Orc  For Market MakingOrc  For Market Making
Orc For Market Making
LMessi10
 
Develop an Infrastructure Cost Optimization Strategy
Develop an Infrastructure Cost Optimization StrategyDevelop an Infrastructure Cost Optimization Strategy
Develop an Infrastructure Cost Optimization Strategy
WSO2
 
Maximize Market Share with Micro Merchandising
Maximize Market Share with Micro MerchandisingMaximize Market Share with Micro Merchandising
Maximize Market Share with Micro Merchandising
Jerry Inman
 
Signal distribution in ds networks
Signal distribution in ds networksSignal distribution in ds networks
Signal distribution in ds networks
Elizabeta Petakovic
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
Ant Phillips
 
Quantlogic Product & Services Offerring
Quantlogic Product & Services OfferringQuantlogic Product & Services Offerring
Quantlogic Product & Services Offerring
nscarr
 

Similar to Climbing mount complexity, one event at a time (20)

Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
 
Banking Software Simulated proposal
Banking Software Simulated proposalBanking Software Simulated proposal
Banking Software Simulated proposal
 
Universal Messaging: Transforming How Businesses Communicate
Universal Messaging: Transforming How Businesses CommunicateUniversal Messaging: Transforming How Businesses Communicate
Universal Messaging: Transforming How Businesses Communicate
 
IBM zUniversity 2004 : ILOG JRules on IBM eServer zSeries
IBM zUniversity 2004 : ILOG JRules on IBM eServer zSeriesIBM zUniversity 2004 : ILOG JRules on IBM eServer zSeries
IBM zUniversity 2004 : ILOG JRules on IBM eServer zSeries
 
Siebel to Salesforce
Siebel to Salesforce Siebel to Salesforce
Siebel to Salesforce
 
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSystWhat OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
What OSGi technology offers to mobile enterprise developers - Jo Ritter, ProSyst
 
VMware Zimbra vs. Novell Groupwise
VMware Zimbra vs. Novell GroupwiseVMware Zimbra vs. Novell Groupwise
VMware Zimbra vs. Novell Groupwise
 
Orc For Market Making
Orc  For Market MakingOrc  For Market Making
Orc For Market Making
 
Cloud Limitless 2012
Cloud Limitless 2012Cloud Limitless 2012
Cloud Limitless 2012
 
Develop an Infrastructure Cost Optimization Strategy
Develop an Infrastructure Cost Optimization StrategyDevelop an Infrastructure Cost Optimization Strategy
Develop an Infrastructure Cost Optimization Strategy
 
Microsoft, Citrix and SCOM: EOL or a New Beginning ?
Microsoft, Citrix and SCOM:  EOL or a New Beginning ?Microsoft, Citrix and SCOM:  EOL or a New Beginning ?
Microsoft, Citrix and SCOM: EOL or a New Beginning ?
 
LIVO Presentation by ENO
LIVO Presentation by ENOLIVO Presentation by ENO
LIVO Presentation by ENO
 
L105704 ibm-cloud-private-z-cairo-v1902a
L105704 ibm-cloud-private-z-cairo-v1902aL105704 ibm-cloud-private-z-cairo-v1902a
L105704 ibm-cloud-private-z-cairo-v1902a
 
High Tech Manufacturing
High Tech ManufacturingHigh Tech Manufacturing
High Tech Manufacturing
 
Maximize Market Share with Micro Merchandising
Maximize Market Share with Micro MerchandisingMaximize Market Share with Micro Merchandising
Maximize Market Share with Micro Merchandising
 
Signal distribution in ds networks
Signal distribution in ds networksSignal distribution in ds networks
Signal distribution in ds networks
 
Saratoga CRM: Implementing Thin Client at Johnson Controls Inc.
Saratoga CRM: Implementing Thin Client at Johnson Controls Inc.Saratoga CRM: Implementing Thin Client at Johnson Controls Inc.
Saratoga CRM: Implementing Thin Client at Johnson Controls Inc.
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
Mobility For Business The Platform Requirements
Mobility For Business   The Platform RequirementsMobility For Business   The Platform Requirements
Mobility For Business The Platform Requirements
 
Quantlogic Product & Services Offerring
Quantlogic Product & Services OfferringQuantlogic Product & Services Offerring
Quantlogic Product & Services Offerring
 

More from Skills Matter

Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
Skills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
Skills Matter
 

More from Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Climbing mount complexity, one event at a time

  • 1. CLIMBING MOUNT COMPLEXITY, ONE EVENT AT A TIME David VINCENT – CTO © 2009 smartTrade Inc.
  • 2. Presentation Agenda 1. Liquidity Management Playground 2. Liquidity Management Foundations 3. Implementation challenges 4. QuickFix/J and SmartTrade LMS 5. ESPER and SmartTrade LMS © 2009 smartTrade Inc © 2009 smartTrade Inc.
  • 3. Liquidity Management Play Ground © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 4. Flows in presence © 2009 smartTrade Inc.
  • 5. Various objectives • Best execution • Best services to clients ( market impact, orders management ) • Algo • Market • Venues • Cross-Asset © 2009 smartTrade Inc.
  • 6. Business and Economical Dimension • Business • Pricing / Rules / Decision making • Automated Market-Making ( active / passive orders ) to clients and venues • Creating Dark Pools • Pre-matching, Best Exec (RegNMS, MIFID,...) • Access to Liquidity / Connectivity • High Velocity flows • Economical • Market impact • Execution and clearing fees control • More Value/Less Risk/ More Flows © 2009 smartTrade Inc.
  • 7. Functional Dimension • Supporting various market discovery modes • Streaming • Request For Stream • Supporting various trading modes • Orders • RFQ • Multi Leg patterns • Basis trading • Synthetic products © 2009 smartTrade Inc.
  • 8. Technical Dimension • Moving targets – always • Complex interacting processes • Old legacy systems part of the game • Low latency • Scalability • High Availability – zero error acceptance • Integration – openness, flexibility, interoperability, acceptability by IT teams © 2009 smartTrade Inc.
  • 9. Liquidity Management Foundations © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 10. Foundation of Liquidity Management Liquidity Aggregator Liquidity Crosser Liquidity Orchestrator Liquidity Connect All components can be used individually, or combined, to help solve entire Liquidity Management needs. © 2009 smartTrade Inc.
  • 11. The Internal Market Paradigm • Virtualization of all trading flows at the enterprise level: complete internal market state model • Full lifecycle management of all inbound and outbound instructions and orders • Complex distribution and liquidity management strategies (orders types, price aggregation, smart routing, internal crossing, internalization, multi-leg strategies, price-tiering) • Easy-to-add new products and automated rules • Seamless integration to current & existing infrastructures for a short time-to-market implementation (including transport) • Connectivity: Liquidity Connect © 2009 smartTrade Inc.
  • 12. Generic Liquidity Management System © 2009 smartTrade Inc.
  • 13. Implementation challenges © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 14. Key Technology Factors • Common Data Model • Explicit messages & structures of data shared across the platform are defined in a domain specific XML file data model • Extensive Cross-platform code generation ( Java, .NET, C++ ) • Extensibility – static and dynamic data model fields & structures • Open Messaging • Decouples messaging middleware dependencies from internal architecture • Allows several messaging transports to connect to the same container • Leveraging client’s existing deployments • Dependencies Injection • Offers a easy way to create assemblies of components; allows very flexible configurations • Deployment Supervision • Mix between Agent based approach (non-intrusive) & JMX • Component configuration ; Supervision & Lifecycle Management • Web based application allowing monitoring of: - Hardware state ( CPU, Processes, Disks, Memory ) - Application state ( Threads, Heap ) - Custom Metrics via JMX plug-ins framework © 2009 smartTrade Inc.
  • 15. Development Approach • SCRUM Methodology • Agile approach to software development & program management, enabling fast and iterative deliveries to clients. • A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need, so its gives valuable flexibility to these unpredicted challenges. • XP (Extreme Programming) • A disciplined approach to software development. • XP empowers developers to confidently respond to changing customer requirements, even late in the life cycle. • It stresses customer satisfaction. So projects will experience greater success and developer productivity. • High Involvement in Open Source World • Open Source development philosophy internally • Contributor in multiple OpenSource projects • Project lead of QuickFixJ OpenSource Java FIX engine © 2009 smartTrade Inc.
  • 16. QuickFix/J : a pure Java FIX Engine © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 17. What is FIX ? • Financial Information eXchange • Created in 1992. • Free, open technical specification for electronic communication of trade-related messages. • Maintained by FIX Protocol Ltd. • Volunteer team • In wide use (exchanges, banks, …) • Global adoption © 2009 smartTrade Inc.
  • 18. FIX protocol layers • Session Protocol • Message format, header, footer • Logon/Logoff • Heartbeats • Sequence number synchronization • Application Protocol • Message formats and semantics • Order submittal and execution • Quoting • Market data • Other (email, news, …) • Representation • ASCII Tag/Value • FIXML (XML, Tag/Value envelope) • Example Message: • 8=FIX.4.19=6135=A49=INVMGR56=BRKR34=152=20000426- 12:05:0698=0108=3010=157 © 2009 smartTrade Inc.
  • 19. What is a FIX Engine ? • Session protocol implementation • Messages and behavior • Supports application messages • Behavior is application-specific • Eases trading counterparty connectivity • “The nice thing about standards…” • Many variations © 2009 smartTrade Inc.
  • 20. QuickFix/J Open Source Project • Spin off of the QuickFIX C++ project • Native C++ • Java via JNI • QuickFix/J motivators • Interesting domain • Integration/deployment issues w/JNI • Free FIX engine for Java clients • No existing OSS Java FIX engines • Unhappy with existing vendors ( Price, Support ) • Unhappy with “homebrew” engines • History • Discussed on QF lists and wiki • November 2004 : QFJ work started in by Steve BATE • Help from Smart Trade on the port • Mid-July 2005 : 1.0.0 beta released • December 2008 : Smart Trade Technologies takes over the project lead • February 2009 : 1.4 released • http://www.quickfixj.org © 2009 smartTrade Inc.
  • 21. QuickFix/J Elements • FIX metadata (XML) • Parser, Pretty Printing, Validation • Generation of Message-related code • Uses Java, XSLT, and XML metadata • Java message and field definitions (FIX 4.0 – 5.0, Serializable ) • Message Cracker (type safe dispatcher) • Application • Interface implemented by users • Several callbacks (Session creation, Logon/Logoff, Message sent/recvd). • Session • Implements FIX protocol • Data dictionary • Message Factory • Message Store (file, JDBC, BDB) • Session Log (file, JDBC, console) • Settings (file) © 2009 smartTrade Inc.
  • 22. QuickFix/J Elements • Connection management • Socket Initiator (usually buy side) • Socket Acceptor (usually sell side) • Single or multithreaded • NIO using MINA • Alternate implementations possible • Acceptance Testing tools • declarative test definitions derived from FIX spec, • JUnit based • Unit testing tools • fills coverage gaps in acceptance testing • JUnit based • Cruise Control • Continous integration support • Builds product and executes tests • Example applications and code samples © 2009 smartTrade Inc.
  • 23. QuickFix/J Benefits • Covers the full FIX connectivity scope • Supports FIX versions 4.0 - 4.4, 5.0/FIXT1.1 • Scheduling of session connections • Failover and High Availability • Open Source • Free! It costs nothing and has a very liberal open source license. • Full source code available (also at no cost). • Native Java • Runs on any hardware and operating system supported by 1.4+ Java SE or compatible VM. • Supports embedded SSL with Java 5+ • Provides standard JMX MBeans for FIX engine management • Easy to embed in existing Java applications • Highly Customizable • Support for protocol customizations (new messages, fields, constraints). • Session state storage plugins: JDBC, File, SleepyCat/JE, In memory • Logging plugins: JDBC, File, SFL4J (supports JDK1.4 logging, Log4J, Commons Logging), Console, Composite © 2009 smartTrade Inc.
  • 24. QuickFix/J inside the Smart Trade LMS © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 25. Liquidity Connect Architecture • Connecting N world to P world • Enterprise Integration Patterns implementation • Not yet CAML ☺ • Router / Translator / Interceptor Chains • Connector • Abstract the API to connect to a specific world • Manages life cycle of the connection ( ready, down, stale.. ) • Receives and transmits message to an interceptor chain • Interceptor chain • Unidirectional • Pass messages along different components • Connector is always at the start and the end of a chain • One to many relationship : 1 connector -> N connector • Bridge • Assembly of connectors and interceptor chains • Spring based definition © 2009 smartTrade Inc.
  • 26. Liquidity Connect Architecture • A –B Bridge • A – BC Bridge © 2009 smartTrade Inc.
  • 27. STTP Connector • Connecting Smart Trade LMS world to P world • Using the Smart Trade STConnect API • Normalizing data into the Smart Trade canonical model • Translator interceptors © 2009 smartTrade Inc.
  • 28. QuickFIX/J Connector • Connecting Smart Trade LMS world to FIX world • Using QuickFix/J Fix engine and libraries • Normalizing data into the FIX canonical model • Translator interceptors to manage versions • Support Custom fields © 2009 smartTrade Inc.
  • 29. QuickFix/J and ST LMS © 2009 smartTrade Inc.
  • 30. ESPER CEP © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 31. Esper Open Source Project • Mission • CEP a natural and easy task of your application • Open platform to create competitive differentiators and maximize reuse • ...and therefore • Lightweight and embeddable into any Java technology process • Open source • Low latency and high throughput • Project background • 3 years of development, 100% Java • NEsper for .NET/C#, same semantics • Dual licensing Enterprise/OEM/Open Source model • Open source for open source use (GPL license) • Commercial for redistribution by ISVs • Services & support (dev, 8x5, 24x7) • http://esper.codehaus.org © 2009 smartTrade Inc.
  • 32. Esper Products Offering • ESPER • ESP/CEP with expressive Event Processing Language • Continuous queries, aggregation, joins, causality and missing events, joins to historical data, output flow control... • Standalone or Embedded • ESPER HA • Out-of-heap storage, complete resiliency to disk, or local in-memory caching • Clustering and hot backup capabilities for event and streams state • ESPER ENTERPRISE EDITION • Esper Studio: Operational console for runtime management, real- time event stream views and ad-hoc queries • EsperJMX: Runtime management and monitoring over standard JMX connectors • EsperJDBC: JDBC compliant client and server endpoints for interoperability • NESPER • ESPER for C#/.NET © 2009 smartTrade Inc.
  • 33. Esper Key Benefits • ESPER Integrated ESP and CEP and expressive EPL language • Rapid development, test and reuse of existing code • Java libs, other open source fwk, Eclipse IDE etc. • Performant & lightweight • Server-less if needed • Possible use of Real-Time JVMs • Multi-platform (Java / .Net, 32/64 bits, multiple OS support) • Ease of integration in existing platforms or standards • Spring Framework • Enterprise Integration Technologies • Management console, runtime management, standard based (JMX) © 2009 smartTrade Inc.
  • 34. ESPER inside the Smart Trade LMS © 2099 smartTrade Inc © 2009 smartTrade Inc.
  • 35. Why integrating with ESPER CEP ? • CEP are NOT Liquidity Management Systems…… They are complementary • Smart Trade • “Smart Trade’s customers will be able to rely on a domain-specific CEP for their SOR, crossing and aggregation strategies on top of already existing programmable rules that our liquidity management system produces and implements to ensure best execution for their firm and clients. This clearly proves that CEP and liquidity management are complementary technologies.” David VINCENT – co-founder and CTO • Esper Tech • "The EsperTech and SmartTrade agreement combines and extends our open-source roots to maximize fit for purpose and confidence while minimizing costs for Reg NMS and MiFID best-execution deployments. This once again confirms how our enterprise-ready and open-source CEP makes sense in today’s world across all industries.” Thomas BERNHARDT, founder and CEO • OEM Agreement between Smart Trade Technologies and Esper Tech signed in February 2009 © 2009 smartTrade Inc.
  • 36. ESPER Plugin • Domain specific integration • Creation of complex stream on the fly • Manipulating a Domain Specific model • Wrapping the ESPER 3.2 runtime into STContainers • Rely on EPServiceProvider, EPStatement and the other friends • Using Spring • Extending the ESPER engine with specific behaviour ( ex : sorting ) • Wrapping the Smart Trade canonical model with Event • Ex : MarketDataSnapshot => MarketDataSnapshotEvent • Ex : NewOrderSingle => NewOrderSingleEvent • Using model extensibility to add EPL return statement fields © 2009 smartTrade Inc.
  • 37. Liquidity Aggregator’s ESPER Plugin • Integration with the STConnect API • Allows to interact remotely with the ESPER Engine • Creating and consuming EPL queries from external process • Chosing feed sources • “Plumbing” Liquidity sources events to the ESPER engine • Source of data • Distribution End point © 2009 smartTrade Inc.
  • 38. Examples of ST / EPL use • Average Bid in the last 30 seconds window select avg(price.value) as PriceAverage from MarketDataSnapshotEvent(MDReqID.value=‘XXXX')[bidEntries].win:time(30 sec) • Instant BestBid / BestOffer spread select bestAggregatedOffer.price.value-bestAggregatedBid.price.value as Spread from MarketDataSnapshotEvent(MDReqID.value=‘XXXX') • Average BestBid / BestOffer spread in the last 30 seconds window select avg(bestAggregatedOffer.price.value-bestAggregatedBid.price.value) as Spread from MarketDataSnapshotEvent(MDReqID.value=‘XXXX').win:time(30 sec) • VWAP select average as VWAP from MarketDataSnapshotEvent(MDReqID.value=‘XXXX')[bidEntries].win:stat:weighted_avg(price.value, quantity.value) © 2009 smartTrade Inc.
  • 39. Liquidity Orchestrator’s ESPER Plugin • Generating complex events to be managed by the rules • From aggregated or raw market data • From order life cycle events ( Fills, Cancelation, unsollicitated messages ) • From external functional events ( Risk exposure,..) to technical events ( Latency, ..) • Separating the events monitoring logic from the actions • A clean Action / Reaction model • A way to layer the rules coding © 2009 smartTrade Inc.
  • 40. ESPER and ST LMS © 2009 smartTrade Inc.
  • 42. Please contact Europe United Kingdom Tel : + 33 1 44 50 19 19 Tel.: +44 (0)20 3326 0522 Fax: + 33 4 42 97 62 52 Fax: +44 (0)20 7491 7976 hgozlan@smart-trade.net njames@smart-trade.net North America Tel.: +1 212 618 6383 Fax: +1 212 618 6309 mbailey@smart-trade.net www.smart-trade.net