title: What is the difference between a validation rule and a business rule?
body: <p>What is the difference between a validation rule and a business rule ? </p>
  
  <p>As per my understanding, 'if the state of the business object/objects is not as expected, then throw an error message' is a validation rule, and 'when the state of the business object/objects is or is not equal to something, then change the state of some business object/objects [or take some action/event but not just throw an error]' is a business rule.</p>
  
  <p>Validation can be UI validations - validate values of UI fields or application validations - validate business object states.</p>
  
  <p>I am not sure whether my understanding above is correct. In my project, we have a validation framework, where a simple validate call takes business objects to validate against something and an error collector that collect all errors. The errors are displayed on the screen afterwords. </p>
  
  <p>In addition to that, we have rules that falls in second category as described above i.e check the business object/objects state and take some action such as change the state of another business object. I am trying to find out the strategy to implement such rules either using some framework [not a validation framework] or a rule engine.</p>
  
  <p>Can you please help me understanding the distinction between the above 2 kind of rules and if there are any implementation strategies/ recommendations, it would be helpful.</p>