Rob Davies is CTO of FuseSource and coauthor of the book ActiveMQ in Action. In this Q&A, Davies discusses messaging middleware and the hurdles that many developers face as they first approach the subject. There is also a podcast version of this interview that includes more detailed information about FuseSource becoming its own entity and about the book.
Are there common hurdles that people always have when they're getting started with messaging?
I think there are, yes. Messaging as a domain can be quite complex, especially as it covers such a wide base of different use cases. What you have with a messaging system is a toolkit that you can do lots of different things with. It's like a big Swiss Army Knife. Sometimes, because you can do the same thing in multiple different ways, it means the decision of which architecture to use for messaging can be quite daunting.
Because you can do the same thing in multiple different ways, it means the decision of which architecture to use for messaging can be quite daunting.
For example, there are different constructs in messaging which you can break down into using queues or publish/subscribe. On top of that, you might want high-availability and there are different ways of providing high-availability messaging. And then you might want your messages to go to more than one geographical location. Some messages you might want to go to London, while other messages you want to go to New York, et cetera. How do you route those messages to go to those locations?
You can see quite quickly, once you get outside of the initial use case of messaging for applications to talk to each other and start to look at the ultimate goals of where you're trying to get to, it can get quite confusing about how to reach that end goal. Hopefully we help people along that path with the book, ActiveMQ in Action.
And from the feedback we've got that seems to be the case. ActiveMQ in Action is a Manning book, and Manning has always been very keen on giving feedback to the authors at every stage of the writing.
What's the most interesting thing you've learned from that feedback?
I would say, and I think this is generally true for everyone who worked on the book, that we come from a viewpoint of actually developing ActiveMQ. It's good to get the viewpoint of people who are actually trying to use it.
Get feedback as early as possible all the time so you can improve experience for users, but also for yourself as a developer.
Sometimes you get people who use it in slightly different ways than you expected them to do. And then you have to think about why they are using it that way. Did we not explain something well enough for them to understand it? And maybe the best path is to do something slightly different.
The thing that has really stuck with me is that it's really good to constantly step back from whatever it is you're trying to do, look at the bigger picture, and try to see if you're providing enough information for the project you're working on to be easy to understand and for people to pick it up and start working with it the way you intend it to be used.
So moving forward, with any software that we do, I think the message to take away is to get the feedback as early as possible all the time so you can improve experience for users, but also for yourself as a developer.
Have you heard about Apple deprecating Java?
I have, yes. That's a shock because – well, come to think of it, it's not such a shock. But the thing is that it disappointed me because at FuseSource, the majority of us are real Apple-holics. We all have Macs, iPhones, and iPads because they're so easy to use. We do all our developing on Macs and then we deploy it on other platforms for testing.
We're going to have to watch this one really closely and see how it turns out. Hopefully, Oracle or Sun will pick this up and run with it. I guess there isn't really a compelling business case for them to provide development platforms for Macs. If that doesn't happen, and if there isn't a community effort in some shape or form to provide a JDK for Macs, then we might have to look at different development platforms in the future. But hopefully that's a good year/year-and-a-half away when we eventually have to update our Macs to the latest version. Actually, what I really want is to have a version of the JDK for the iPad. I think that would be really cool.