Exposing UDP Exchange Recorders to The Broker
This afternoon one of the big things I've needed to get done is to try to add to my UDP Exchange Recorders the ability to publish themselves as a service on our Broker system. A little background here, as I haven't written about this yet… we need to record the data feeds from the exchange feeds in order to see what happened in the middle of the day - in a post mortem sense. In order to do that as simply as possible, I wrote a UDP feed recorder. It's a lot like our UDP exchange feeds, but instead of decoding the datagrams, we simply write them out to a disk file in 10MB blocks.
Depending on the feed, these blocks are a minute or two, all the way up to hours of real-time data. We archive these for a few days, and then drop them as the disk space they consume is non-trivial. So… we wanted to be able to at this same data a little easier for the Greek Engines, so that a restart of a Greek Engine will not miss any ticks. By far, the easiest way to do this is to make it a service on out Broker system.
Thankfully, I've done this a lot, and it's a simple matter of creating a new class, filling in some code, tying in the initialization and periodic checks to make sure it's still connected, and we're ready for the meat of the request system. In all, about an hour of work, which isn't bad at all.
Now I need to figure out how these UDP exchange recorders are going to work with my archive server to get the latest data from the feeds in order to catch up the greek engine on restart.