For almost two years now, I’ve been intending to write an article about the mysterious ‘side effects’ flag used in Microsoft Business Rule Engine policies. Microsoft documents this feature (see http://msdn2.microsoft.com/en-us/library/aa559124.aspx), and describes very briefly how to control it. The mystery that surrounds this flag arises because it is represented by an attribute named ‘sideeffects’ in Microsoft’s BRL (Business Rule Language) although it actually controls a caching mechanism, and because Microsoft has not provided access to the flag in their Rules Composer, thereby giving the impression that it is not a ‘first-class’ feature of rule definitions. In reality, this flag is an important aspect of the functional approach adopted in Microsoft’s Business Rule Language (BRL), and can have a significant effect on both behaviour and performance of your policies. Understanding the flag also requires a greater understanding of the way in which BRL binds functions to custom code, providing a clean mechanism for implementing domain-specific extensions to the rule language.
Incidently I apologise that, for a few hours after my initial posting, I had to withdraw the article. No sooner had I posted than I realised that I had not adequately investigated one aspect of MS BRE functionality. I have now corrected and extended the original version. I’m sorry if anyone found their aggregator reporting a page that wasn’t there.
The article is located at http://geekswithblogs.net/cyoung/articles/111169.aspx