Trying to Get a Handle on 29West Usage at The Shop
Today has been a long and tiring day, but I think finally I have the answers I've been looking for. Specifically, I've been trying to complete my next source/sink pair for the ticker plant that I'm working on, and this pair is meant to use 29West. Their LBM (Latency Buster Messaging) product, specifically. In the past, I've used 29West in what I consider a fairly "standard" configuration - there's a resolver for a large series of services - but separated out for production, UAT, development and possibly even multiple sites. But the point is to make these resolvers handle as much as possible so they actually do the job their name implies: resolve.
Then you have a series of topics like all messaging products, and you start sending and listening for packets on those topics. It's not the most elegant messaging system I've ever used - I think it doesn't encapsulate enough for the user, but that's a corporate design decision, and while I don't agree with theirs, it is theirs to make.
When I started looking at the code from the existing system using 29West, I noticed that it was doing a lot of very specific multicast address stuff, and different resolvers, and I got the feeling that they weren't using it like this at all. In fact, I got the distinct impression that they were using it to bridge multiple multicast networks together.
When we got together and I asked a few questions I realized that they were using it as basically nothing more than a reliable multicast system. The topics were really overly simplistic, but they had independent 29West networks for each of the different message types, and then each of the different first letters in the symbol names. It was really just a reliable multicast library.
When I realized this, I knew the real solution was to get rid of 29West and go towards a more simplistic, yet solid, reliable multicast library. I just had to find it.