9 Questions to Ask about your CEP Project

Reading Time: 3 minutes

Decision Management campaigner James Taylor created an interesting post titled “10 Questions to Ask about your Business Rules Project”. Mostly I concur with these (maybe I would change the “who owns the business rules” to “who is responsible for the decision”, as well as make it clear that decisions are usually, but not always, the sorts of business rules you are interested in… but those are quibbles).

So what about “10 Questions to Ask about your CEP Project“? Well, I tried to distil James’ list to something useful for the CEP community. But I only came up with 9.

  1. What are the CEP outcomes: business events to display? Events to send elsewhere? Some decisions to be made and reported? These should relate directly to the goals of the project.
    From here we need to derive our complex events, and the operations on them, and how many will need to be in memory…
  2. What are the source events: are our sources already instrumented to give them? Are they already produced, and / or already stored as data somewhere (like a log file or database)?
    This will tell us if we have the necessary information for the CEP outcomes.
  3. What are our channels to get the source events to where we want to process them: do we need some extra middleware plumbing? Is the logical event processing network covered for appropriate channels, bandwidth, latency etc?
    This is associated to the source events – we also need these events to be portable to our processor, whether across JMS, TCP-IP or whatever.
  4. What business processes are going to be affected by the CEP outcomes: will there be more load on business processes (e.g. as more exception events are uncovered)? Is more capacity needed in downstream systems, or more decisions relating to capacity required?
    This may relate to a goal (e.g. detect more fraud) or a side-effect (e.g. more stock will be required)
  5. Will there need to be business oversight or maintenance of the event processing and decisions? Such as a business user interface that abstracts the event processing parameters or rules or decisions, for example, and allows some aspect of business control over that logic? Or will this be primarily reporting of what happens to business users?
    This may determine some architecture aspects, such as the use of a Rule Management System.
  6. Are organisational aspects covered and all owners of downstream (event sources, channels, infrastructure) and upstream (business processes, displays, systems) involved and agreed? Are there any legal or regulatory side effects or benefits?
    Surprisingly, CEP often covers mutliple domains, such as providing fraud detection alongside detecting marketing opportunities. Department owners need to buy-in to the overall and maybe targeted benefits.
  7. Will therebeĀ  any historical data trends or statistical event patterns that will be re-usable in event processing: for example can we monitor short term trends using analytics in the memory of events that might affect our event decisions or patterns?
    Although CEP gives us real-time / in-memory analytics, there are still many statistical approaches that can be used to augment say longer term scoring of inputs for decisions.
  8. How do we measure the results or benefits of this event processing: what are the metrics (and indeed should we automate their collection and reporting)?
    This relates the goals of the system to the results. Often overlooked, but always useful.
  9. Where or what are the test cases that show for what inputs what outputs are expected?
    Test-driven development is a good practice. If you can’t generate or find test data, then is this a research project rather than a production project?

So here’s a challenge: what last question can we usefully ask to make this a list of 10? The only other ones I came up with were more implementation details (i.e. what technology makes sense – am I detecting event relationships or processing individual events, and so on).