Chapter 11. Implementing a Rules DSL
In this chapter, we will look at how we can use Groovy to build a DSL that is capable of implementing business rules for an application. The example we will use is a system for implementing rewards bonuses of various kinds as part of a promotions system for an online broadband media provider.
Our provider hosts a service that allows users to view videos and play games online. The provider needs to be able to deploy offers to his users rapidly and with the minimum amount of development time. We will come up with a Groovy-based DSL that expresses rewards in such a way that they can be rapidly developed and deployed in a language that can also be understood by business stakeholders.
This DSL relies on a new concept that we have not covered yet, which is the use of Groovy binding. To begin with, we will look at Groovy bindings—how they work and how we can make use of them to improve our DSLs. We will cover a number of useful techniques that...