InfoQ Homepage Presentations Futures Trade Flow
Futures Trade Flow
Summary
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.
Bio
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.
Community comments
Transactions
by planet jones,
Re: Transactions
by Ian Bond,
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.