BT

Interview: Eric Evans Interviews Greg Young on the Architecture of a Large Transaction System

by Abel Avram on Jul 10, 2008 |

In an interview published by InfoQ a couple of weeks ago, Eric Evans, the author of Domain Driven Design and playing the role of an interviewer for the first time, asks Greg Young about the architectural challenges encountered while designing and implementing a system used to process tens of thousands of transactions per second. It's not just the sheer number of transactions that is challenging, but the time constraints imposed are those specific to real-time systems.

The system collects real-time financial data coming from multiple stock markets as messages. The messages are processed and the resulting data is modeled and stored in the system's domain making it available for various analytic purposes like algorithmic trading or data analysis.

Some of the objects in the domain go through various state changes, and tracking those changes is vital for the application. All the domain objects are stored in various repositories, but the aggregate roots are responsible for handling state changes for the entire aggregate. The solution chosen was to work with state changes not the state itself, and the changes are propagated through a pipeline of messages. For example, when an order is created an order created message is dispatched and the order is stored into an order book. When someone trades with that order, the system receives a trade message, finds the respective order and removes some volume from it dispatching a separate message. When the order is empty, it is removed from the order book.

The 23 minutes long interview contains more architectural challenges and implementation details.

Hello stranger!

You need to Register an InfoQ account or to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Domain and Architecture by John Donaldson

Well, very interesting - normal developers don't often get to work on such extreme systems. I would have appreciated a couple of diagrams, and occasionally the dmain knowledge (well, lack of it on my part) got in the way of understanding the application architecture. Lots of follow on questions!

Congratulations! by Rafael Peixoto de Azevedo

No need for forgiveness!
I actually deeply thank you both.


The reported experience is very rich. The design solutions to address such challenges of speed, reliability and complexity are certainly useful in other design situations.


I am looking forward to learn more about this excellently done work.

Sounds like classic Event Sourcing by Alexey Burtsev

I have listended first 5 mins and it sounds like classic Event Sourcing pattern...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT