Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Futures Trade Flow

Futures Trade Flow



Ian Bond presents the development of a trade flow event-driven architecture, providing the background of futures trade, the domain and the solution, sharing some of the lessons learned along the way.


Ian Bond is currently the lead for trade management technology within Exchange Traded Derivatives at UBS. Before UBS, he worked as a consultant for the Thomson Corporation. Part development manager, part architect, part developer, his main interests are trying to apply Agile methods, domain modeling, mixing financial technology with more mainstream technology and keeping things simple.

About the conference

QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.

Recorded at:

Jun 15, 2011

Hello stranger!

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

Get the most out of the InfoQ experience.

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

Community comments

  • Transactions

    by planet jones,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I thought that was a really great talk and really pleased I spent the hour watching it.

    I have a question regarding transactions. In the system it shows trades entering the distributed cache via messaging e.g. point to point queue or topic which it subscribes to. It also says that persistence is via Hibernate mappings which are invoked asynchronously. I just wanted to get a feel for how the transactions work in this system e.g. in terms of trades entering the system does an initial persistence action take place, which has to succeed before the transactions with the queue or topic ends (so you don't lose the trade). When events are being executed against the domain objects and the data is changing, it's implied that async calls keep the persistence state synced with the cache state. How does the system ensure that writes aren't lost e.g. if the persistence is asynchronous how would you rollback the cache data if that action fails.

    Thanks again.

  • Re: Transactions

    by Ian Bond,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yes, I didn't expand on this area in the presentation. But within the transaction that takes the trade message off the topic, as well as the trade being saved to the cache it is also written to a file. The trades from the file are then persisted to the database via Hibernate asynchronously. Therefore the database call is out of the critical path, but the trade is persisted, initially to just a file.

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

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