When my wife and I were sightseeing in London last year, we bought unlimited-travel tickets for the Underground. We found it to be a really effective way of getting around in a city the size of London – the tube is easy to understand, and not too crowded if you avoid the rush periods.
The system was a good fit for what we wanted because so many people before us had similar transport needs, and our requirements matched those of countless travelers and commuters before us.
It’s very satisfying to find a shrink-wrapped solution that exactly matches and even anticipates your needs, like the London Underground did for us, but requirements have a tendency to shift and grow.
Applications with a strong focus on a particular domain often lack the flexibility to include data from other sources, and tend to look at things from their own perspective, not yours. On the other hand, applications with too generic an approach tend to get bogged down in their own world anyway.
A good CEP solution is ubiquitous but unobtrusive. It can integrate with anything and everything. Yes, it’s platform-independent and it does the job really fast and in ‘real-time,’ but the exciting part for users is the ‘what,’ not the ‘how.’
What it does is find the gems of information in the haystack of noise (excuse the badly mixed metaphors) and lets you respond to them. It knows everything your business knows and tells you everything you need to know (and hopefully only what you need to know). And most importantly, it evolves with your business.
As Charles Darwin never famously said, It is not the strongest of the species that survive, nor the most intelligent, but rather the one most adaptable to change (my emphasis).
So there’s actually room for both specific domain solutions and generic event processing ones – the trick is in understanding where the boundaries lie.