SlideShare una empresa de Scribd logo
1 de 11
BAXTER PRICE ENGINE
PROOF-OF CONCEPT REVIEW
TimirKariaandJimMarino
Highlights
Average latency
0.146973 milliseconds per message (146,973.09 nanoseconds) with no JVM tuning
over 100,000 price samples (~6 million (6x106) messages / minute)
What are timings based upon?
Receive a byte array representing a price, deserialize it, validate, cache, apply 100 internal
price rungs on 1 ladder, apply 100 external price rungs on 3 external margin groups, and
serialize the results for delivery to an order entry system.
Machine: (PEPOC2 in BUD)
Dell PowerEdge R200
Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
4GB RAM4GB RAM
Complexity
Lines of code: ~1400
XS Structural Complexity rating (Structure 101): 0
Core Processing Logic Principles
Price Calculations – design of price structure
Price objects are built as the move through the system
Prices should not contain more information than required at any given
point
Minimize functionality and focus on data in prices
Price objects get larger (more complex) as they contain more information
but are eventually condensed into a quote
The relationship between prices should be easy to understand and simple
to implement
Tangled business logic can be implemented in processing logic rather than
in price
Fast serialization/de-serialization of objects is mandatory
We used Google Protocol Buffers for speed but could equally use JMS or
another transport layer
Architecture Performance Principles
First rule of distributed applications: Don’t
Collocate as much as possible
Performance
Avoid network overhead
Avoid serialization (time consuming, excessive object creation)
Simplification
Code, configuration, monitoring, and management
Use lock-free CAS operations where possible
Avoid contention
Separate mutable and immutable data
Share immutable objects
Reduce unnecessary object creation
Limit system jitter and latency from GC cycles
Price objects are only updated by a single thread
No synchronization, less complexity
Architecture Modularity
Goals
Enforce separation of concerns between subsystems
All subsystems communicate via an API
Subsystem implementation classes and artifacts are not visible outside of their
module
Ability to replace subsystems
Extraction, internal pricing, external pricing, distribution
Architected extension points
Defined SPI for extending the Price Engine
Allow customers to modify default behaviors
Transport independence – use JMS, ZeroMQ, other transport layer, without code
changes
No significant runtime performance impact
Small startup impact for classloading due to OSGi filters
How prices work
Data Model
Data Model predicated on simplicity, flexibility and matching
business flow
Object hierarchy simplified into manageable hierarchy that is
still flexible
Adheres to the following principles
Only carry the data you need
Use primitive types when available
Keep objects and dumb containers for data as much as possible
Minimize network object size
E.g. incoming prices are 55 bytes
Architecture
Flows
System architecture built on a series of Flows that contain 1..N
Processors which operate on a Price in a given order
A module contains one or more flows
The terminating Processer in a Flow calls the next Flow
Flows are synchronous
Avoid context switching, threading overhead, and need to synchronize
price objects
Only one thread modifies a price object
Simplify programming
Asynchronous programming more complex
System is multi-threaded
A flow may be running on multiple threads
Can spin-off async tasks and delivery intermediate data as necessary
Flows and Modules
Productivity
Designed as a Maven multi-module project
● Zero-configuration setup: git clone… mvn clean install
Automated integration testing
● Full end-to-end in-container system testing as part of local
Maven build
● Can be run as part of a CI build
Integrated Caliper microbenchmark framework
● http://code.google.com/p/caliper/

Más contenido relacionado

Similar a BAXTER PoC

MS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regressionMS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regressionDataminingTools Inc
 
MS SQL SERVER: Neural network and logistic regression
MS SQL SERVER: Neural network and logistic regressionMS SQL SERVER: Neural network and logistic regression
MS SQL SERVER: Neural network and logistic regressionsqlserver content
 
Improving software system load balancing using messaging.
Improving software system load balancing using messaging.Improving software system load balancing using messaging.
Improving software system load balancing using messaging.Marc Karasek
 
Topic3 Enterprise Application Integration
Topic3 Enterprise Application IntegrationTopic3 Enterprise Application Integration
Topic3 Enterprise Application Integrationsanjoysanyal
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelJenny Liu
 
Optimized Systems: Matching technologies for business success.
Optimized Systems: Matching technologies for business success.Optimized Systems: Matching technologies for business success.
Optimized Systems: Matching technologies for business success.Karl Roche
 
International Journal of Computer Science and Security Volume (3) Issue (3)
International Journal of Computer Science and Security Volume (3) Issue (3)International Journal of Computer Science and Security Volume (3) Issue (3)
International Journal of Computer Science and Security Volume (3) Issue (3)CSCJournals
 
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...ijceronline
 
Using fuzzy logic control to provide intelligent traffic management service f...
Using fuzzy logic control to provide intelligent traffic management service f...Using fuzzy logic control to provide intelligent traffic management service f...
Using fuzzy logic control to provide intelligent traffic management service f...JPINFOTECH JAYAPRAKASH
 
Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...JPINFOTECH JAYAPRAKASH
 
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...Insight Technology, Inc.
 
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...Insight Technology, Inc.
 
Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...JPINFOTECH JAYAPRAKASH
 
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...IEEEMEMTECHSTUDENTPROJECTS
 
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...IEEEMEMTECHSTUDENTSPROJECTS
 
System Z Enterprise Workload Optimization
System Z Enterprise Workload OptimizationSystem Z Enterprise Workload Optimization
System Z Enterprise Workload OptimizationJim Porell
 

Similar a BAXTER PoC (20)

IBM Netezza
IBM NetezzaIBM Netezza
IBM Netezza
 
MS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regressionMS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regression
 
MS SQL SERVER: Neural network and logistic regression
MS SQL SERVER: Neural network and logistic regressionMS SQL SERVER: Neural network and logistic regression
MS SQL SERVER: Neural network and logistic regression
 
Improving software system load balancing using messaging.
Improving software system load balancing using messaging.Improving software system load balancing using messaging.
Improving software system load balancing using messaging.
 
Topic3 Enterprise Application Integration
Topic3 Enterprise Application IntegrationTopic3 Enterprise Application Integration
Topic3 Enterprise Application Integration
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in Parallel
 
Optimized Systems: Matching technologies for business success.
Optimized Systems: Matching technologies for business success.Optimized Systems: Matching technologies for business success.
Optimized Systems: Matching technologies for business success.
 
International Journal of Computer Science and Security Volume (3) Issue (3)
International Journal of Computer Science and Security Volume (3) Issue (3)International Journal of Computer Science and Security Volume (3) Issue (3)
International Journal of Computer Science and Security Volume (3) Issue (3)
 
Actian Matrix Whitepaper
 Actian Matrix Whitepaper Actian Matrix Whitepaper
Actian Matrix Whitepaper
 
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
 
Using fuzzy logic control to provide intelligent traffic management service f...
Using fuzzy logic control to provide intelligent traffic management service f...Using fuzzy logic control to provide intelligent traffic management service f...
Using fuzzy logic control to provide intelligent traffic management service f...
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
 
Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...
 
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...
[db tech showcase OSS 2017] A25: Replacing Oracle Database at DBS Bank by Mar...
 
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...
[db tech showcase OSS 2017] A23: Analytics with MariaDB ColumnStore by MariaD...
 
Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...Dcim distributed cache invalidation method for maintaining cache consistency ...
Dcim distributed cache invalidation method for maintaining cache consistency ...
 
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...
IEEE 2014 DOTNET DATA MINING PROJECTS Trusted db a-trusted-hardware-based-dat...
 
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...
2014 IEEE DOTNET DATA MINING PROJECT Trusteddb a-trusted-hardware-based-datab...
 
System Z Enterprise Workload Optimization
System Z Enterprise Workload OptimizationSystem Z Enterprise Workload Optimization
System Z Enterprise Workload Optimization
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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 slidevu2urc
 
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...apidays
 
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 AutomationSafe Software
 
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...Drew Madelung
 
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 WorkerThousandEyes
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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...
 
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
 
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...
 
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
 

BAXTER PoC

  • 1. BAXTER PRICE ENGINE PROOF-OF CONCEPT REVIEW TimirKariaandJimMarino
  • 2. Highlights Average latency 0.146973 milliseconds per message (146,973.09 nanoseconds) with no JVM tuning over 100,000 price samples (~6 million (6x106) messages / minute) What are timings based upon? Receive a byte array representing a price, deserialize it, validate, cache, apply 100 internal price rungs on 1 ladder, apply 100 external price rungs on 3 external margin groups, and serialize the results for delivery to an order entry system. Machine: (PEPOC2 in BUD) Dell PowerEdge R200 Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz 4GB RAM4GB RAM Complexity Lines of code: ~1400 XS Structural Complexity rating (Structure 101): 0
  • 3. Core Processing Logic Principles Price Calculations – design of price structure Price objects are built as the move through the system Prices should not contain more information than required at any given point Minimize functionality and focus on data in prices Price objects get larger (more complex) as they contain more information but are eventually condensed into a quote The relationship between prices should be easy to understand and simple to implement Tangled business logic can be implemented in processing logic rather than in price Fast serialization/de-serialization of objects is mandatory We used Google Protocol Buffers for speed but could equally use JMS or another transport layer
  • 4. Architecture Performance Principles First rule of distributed applications: Don’t Collocate as much as possible Performance Avoid network overhead Avoid serialization (time consuming, excessive object creation) Simplification Code, configuration, monitoring, and management Use lock-free CAS operations where possible Avoid contention Separate mutable and immutable data Share immutable objects Reduce unnecessary object creation Limit system jitter and latency from GC cycles Price objects are only updated by a single thread No synchronization, less complexity
  • 5. Architecture Modularity Goals Enforce separation of concerns between subsystems All subsystems communicate via an API Subsystem implementation classes and artifacts are not visible outside of their module Ability to replace subsystems Extraction, internal pricing, external pricing, distribution Architected extension points Defined SPI for extending the Price Engine Allow customers to modify default behaviors Transport independence – use JMS, ZeroMQ, other transport layer, without code changes No significant runtime performance impact Small startup impact for classloading due to OSGi filters
  • 7. Data Model Data Model predicated on simplicity, flexibility and matching business flow Object hierarchy simplified into manageable hierarchy that is still flexible Adheres to the following principles Only carry the data you need Use primitive types when available Keep objects and dumb containers for data as much as possible Minimize network object size E.g. incoming prices are 55 bytes
  • 9. Flows System architecture built on a series of Flows that contain 1..N Processors which operate on a Price in a given order A module contains one or more flows The terminating Processer in a Flow calls the next Flow Flows are synchronous Avoid context switching, threading overhead, and need to synchronize price objects Only one thread modifies a price object Simplify programming Asynchronous programming more complex System is multi-threaded A flow may be running on multiple threads Can spin-off async tasks and delivery intermediate data as necessary
  • 11. Productivity Designed as a Maven multi-module project ● Zero-configuration setup: git clone… mvn clean install Automated integration testing ● Full end-to-end in-container system testing as part of local Maven build ● Can be run as part of a CI build Integrated Caliper microbenchmark framework ● http://code.google.com/p/caliper/