Thursday, 5 April 2012

April Update from LMAX Technology

Here at LMAX we've been working dead hard to deliver more features and more ways to access the platform, and we've neglected the poor blog.

There are a few things of note that are worth mentioning from the LMAX technology camp:
  • Mike Barker is featured talking about the Disruptor on the Distributed Podcast.
  • Mike, Trisha Gee, and Andy Stewart all gave presentations at QCon London.  Links to the presentations will be posted as soon as they are available.
And there are more events that we're going to be at too:

Oh, and we're still hiring developers.

Thursday, 22 December 2011

Order and Execution Events

Quite recently we had a customer come to us with a question regarding the Execution events received on the API.  The question was: "How do a I recognise the last execution event for a given order event?"  This is a little bit tricky in the Java API as it does not behaviour exactly the same way that FIX does.  E.g. If an individual order with a quantity of 30 aggressively matches multiple price points (quantity of 10 at each) on the exchange, a fix user would expect would expect:

MsgType(35)=8, ExecType(150)=New(0), CumQty(14)=0
MsgType(35)=8, ExecType(150)=Trade(F), CumQty(14)=10
MsgType(35)=8, ExecType(150)=Trade(F), CumQty(14)=20
MsgType(35)=8, ExecType(150)=Trade(F), CumQty(14)=30

As our API is based upon our XML protocol the information that we can return on the API is restricted to what we receive in those events. For a similar scenario over our XML protocol only emits a single order event at the end of the matching cycle, therefore the data output would be:


So the Java API does not have the information about the individual filled quantities as a result of each execution only the final state of the order. This can make it a little tricky to find which execution event represents the end of the matching cycle. The information seen by a user of the Java API for the same scenario would be:

getQuantity() = 10, getOrder.getFilledQuantity() = 30
getQuantity() = 10, getOrder.getFilledQuantity() = 30
getQuantity() = 10, getOrder.getFilledQuantity() = 30

However, it is possible to use some of the additional events that are available on the Java API to derive the same behaviour. By listening to both Execution and Order events we can track the cumulative quantities as we go. It does require a little bit more state management by the client, but the logic is fairly straight forward.

Wednesday, 21 September 2011

We're hiring!

If you like what we do and you're interested in working for LMAX, take a look at our Stack Overflow Careers advert.

Tuesday, 26 July 2011

Weekly Events Update - Tuesday 26th July

Apologies for the late post, unfortunately sometimes actual development gets in the way.

Last week

The Disruptor was nominated for the 2011 Java Innovation Awards.

We made a change to the application which means that FX trading is now only shut down for 5 minutes after 10pm, instead of 30 minutes.

A team of LMAX cyclists completed the London to Cambridge Bike Ride, raising money for Breakthrough Breast Cancer, and no-one (from our team) died.

This week

Mike will be giving a lightning talk at the LJC/JBUG event tonight, Tuesday. Trisha and Martin will also be turning up.

Future events

5th October - TradeTech Architecture. Martin Thompson, CTO, will be on one of the panels.

11th October - Goto Aarhus. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be presenting the LMAX Disruptor pattern: "100K transactions per second at less than 1ms latency".

13th - 14th October - Goto Amsterdam. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be tackling the folklore surrounding high performance computing.

31st October - 2nd November - JAX London.  Mike Barker and Trisha Gee will be presenting "Understanding the Disruptor, a Beginners Guide to Hardcore Concurrency".

15th November - StackOverflow Dev Days 2011. Mike Barker will be presenting on Performance & Technology Folklore. 

Monday, 18 July 2011

Weekly Events Update - Monday 18th July

This week

Some of the development team will pop in to the London Java Community monthly social on Tuesday. It's always a great night to talk tech (or not) and meet new people.

On Wednesday, Dave Farley will be giving a presentation at SkillsMatter on how we do Continuous Delivery.

Future events

5th October - TradeTech Architecture. Martin Thompson, CTO, will be on one of the panels.

11th October - Goto Aarhus. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be presenting the LMAX Disruptor pattern: "100K transactions per second at less than 1ms latency".

13th - 14th October - Goto Amsterdam. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be tackling the folklore surrounding high performance computing.

15th November - StackOverflow Dev Days 2011. Mike Barker will be presenting on Performance & Technology Folklore.

Tuesday, 5 July 2011

Nominated for three UK Agile Awards

We're excited to announce that we've been nominated for an Agile award in three categories:
  • Best Agile Team
  • Most Agile Aware Organisation
  • Most Engaged Management Team
Using agile techniques is important to the way we deliver business value as fast as possible, so it's nice to get a little recognition in this area.

Monday, 4 July 2011

Weekly Events Update - Monday 4th July

Last week

We made a number of tweaks to the Disruptor, with some improvements to the code and some changes to the website, and there are now a number of blog posts explaining sections of it.

There has also been work on two .NET versions of it: one on github and one on Google code.  We're pretty excited about them and interested to see the results.

This week

On Wednesday some of us are attending "The Future of TX Trading Debate" hosted by EQUINIX.

Thursday is Oracle's global introduction to Java 7, with a live webcast.

Future events

5th October - TradeTech Architecture. Martin Thompson, CTO, will be on one of the panels.

11th October - Goto Aarhus. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be presenting the LMAX Disruptor pattern: "100K transactions per second at less than 1ms latency".

13th - 14th October - Goto Amsterdam. Martin Thompson (CTO) and Dave Farley (Head of Software Development) will be tackling the folklore surrounding high performance computing.