Both domain-specific languages and business rules are approaches to claryfing a domain and encoding its complexity in a set of machine-executable rules.

Both require an unambiguous concept model of the domain and will help elicit one through discussions. If you need to formalize a rule so that it can be executed by the machine, you are forced to understand its meaning, including the meaning of the used terms.

If your domain is complex enough that you have dedicated subject matter experts or business analysts, consider putting Subject Matter First:

  • If your experts express their domain (your requirements) in the form if-then statements, business rules would be the perfect match.
  • If they express themselves in sequences of steps with jumps and conditions, then a text-based DSL, standalone or embedded, would match.
  • If they need notation such as tables or diagrams then providing them with a projectional DSL would give them the necessary tools to express themselves in a rich yet unambiguous way.