Another important factor is applying a rules engine and deciding upon data sources in our distributed system. Rules are an essential part of any system as they help us to govern the entire system. Many organizations use a centralized rules engine or workflow processes following the BPMN standards example, Drools. An embedded rule engine can either be placed within the service or can be external to the service based on usage. If there are complex rules, a central authoring repository with an embedded engine would be the best choice. Since it is centrally distributed, there can be technology dependencies, rules running rules within some application server boundaries, and so on.