• Share
  • ?
  • Profiles ▼
  • Communities ▼
  • Apps ▼

Blogs

  • My Blogs
  • Public Blogs
  • My Updates
  • Administration
  • Log in to participate

▼ Tags

 

▼ Archive

  • July 2014
  • May 2013
  • March 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • May 2012
  • December 2011
  • November 2011
  • October 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • May 2010
  • March 2010
  • January 2010
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • August 2007

▼ Blog Authors

IBM Operational Decision Manager Blog

View All Entries
Clicking the button causes a full page refresh. The user could go to the "Entry list" region to view the new content.) Entry list

Are You Making a Decision or Detecting a Situation?

Daniel Selman 2700022VQ3 | ‎ | 1 Comment ‎ | 8,271 Views

Increasingly I am being asked about the difference between using rules to implement decisions and using rules to detect situations. Sometimes people confuse or conflate the two but I believe the separation is valuable and you should try to preserve it in your architecture if possible. Here are some of the differences.

Decisions:

  • Predominantly stateless functions: given an input, they product an output
  • Rules are predominantly used to validate and transform inputs to outputs. Often Sequential or FastPath execution algorithm is used.
  • Usually called synchronously from a transactional system, or process. May be idempotent.
  • Externalizes some critical business logic from existing applications
  • Relatively easy to test. You can create test cases in spreadsheets and run them through the system to check your rules are functioning correctly.
  • Relatively easy to reuse the same decision in many applications and contexts: batch, transactional, process, mobile etc.
  • High-availability and load-balancing is relatively easy to implement

Situations:

  • Predominantly stateful functions that detect interesting situations in an event stream. Rarely idempotent.
  • Rules are relatively more complex as they correlate and aggregate timestamped event information.
  • Usually run alongside existing systems, listening to event streams and asynchronously emitting events when interesting situations are detected.
  • Challenging to test as you have to set up the correct context and inject events at the right frequency.
  • The passage of time (and missing events) can be a crucial component in the definition of a situation
  • In some industries the places/locations for events is an important component in the definition of situations. E.g. physical security applications.
  • Detecting a situation may require making one or more decisions
  • Deciding on the optimal response once a situation is detected may require making subsequent decisions
  • Relatively hard to reuse, in fact it is not usually clear what reuse means in this context.
  • High availability and load-balancing is challenging

In many ways this is the old Process vs. Decision debate from 10 years ago, just resurfaced in a new form. Rules are a powerful technique to implement both decisions and to detect situations, but the two are not the same, and typically serve different purposes in your enterprise IT architecture.

 

  • Add a Comment Add a Comment
  • Edit
  • More Actions v
  • Quarantine this Entry
Notify Other People
notification

Send Email Notification

+

Quarantine this entry

deleteEntry
duplicateEntry

Mark as Duplicate

  • Previous Entry
  • Main
  • Next Entry
Feed for Blog Entries | Feed for Blog Comments | Feed for Comments for this Entry