Not long ago I sat down with Phil Martin, a senior consultant at Datasports, for a 30-minute online Q&A and demo on “How to Develop with Java and CEP”. Phil’s been developing applications with Java and StreamBase CEP for over 3 years now and we wanted to pick his brain about his experiences developing applications with these two languages.
If you’re a Java developer looking to build real-time event based applications you should definitely check it out in its entirety here. Then again, if you’re a developer you probably don’t have 30 minutes of free time to watch the video...unless of course you're developing with StreamBase!
So instead I'll make it easier for you. Below you’ll find the highlights from this conversation, and the best part is you should be able to digest it all in about 90 seconds.
Q: Phil, what kind of use cases and applications are a good fit for CEP development?
A: It should be a real-time system where performance is an important concern. And it should be unsurprisingly an event or message based type of processing model where those events or messages are clearly defined, where the content and format is known at design time. And I think that you get increasing benefit from a platform like StreamBase if you have a large number of disparate kinds of systems that you’re looking to integrate with.
Q: What aspects of my application should be developed in CEP and which should be developed in Java?
A: Anything that implements a low level protocol type of logic probably belongs in the Java domain, for example things that are implementing interactions with vendor provided client libraries or protocol libraries or doing low level network disk or database IO. In general other than that I find that the CEP programming model works the best for almost all business logic.
Q: What are the benefits of developing with CEP?
A: When I’m developing code I want to concentrate on the things the human being does well and have the computer do things that machines do well. And for me that means I want to be focused as much as possible on business logic. And what I find is that using a platform like StreamBase lets me stay focused on business logic. The other benefit that I see is visual programming. I find the day-to-day model for doing development more productive. I also find that the resultant applications tend to be fast and stable.
Q: What have been your experiences around time-to-market gains with CEP?
A: My general rule of thumb is developing with CEP is three to five times faster than using a traditional programming model like Java or .NET development.
Q: How does CEP address some of the biggest frustrations Java developers face?
A: My biggest frustration also relates to the biggest strength in Java, which is that for every level of your application infrastructure there are choices to be made. There are choices around what version of the JRE, what kind of framework you’re going to use to write your application, the list goes on and on. By having so many of those choices already made for me and made well by the StreamBase platform I can do what I want to do, which is to stay focused on solving business problems.
Q: There are some objections that we sometimes hear from Java developers around having to learn a new language and concerns about visual programming and its effect on performance. Why shouldn’t Java developers be concerned about that?
A: In terms of being able to actually get ramped up, get hands on and start doing productive work I find that curve with StreamBase is actually very fast compared with other environments. I would normally estimate that someone who is never touched StreamBase before can actually be productive in a matter of weeks.
The StreamBase environment is compiled the same as any Java applications, the components and infrastructure are developed with performance in mind.
I found that the visual environment makes the processes of refactoring and reusing code and tuning the threading model much simpler, much clearer, and much, much faster than what it would be in a traditional programming environment.
Thanks to Phil for doing this webinar with us. You can check out his blog at https://blog.datasports.ca/ where he blogs about financial systems engineering, including StreamBase, Java, and the Canadian markets.