The application of rules has two reasons. Rules allow each user to define simple data processing workflows. Administrators, on the other hand, can define such workflows to implement data management policies.

An example of the rule syntax could be:

Rule_name(*arg) { #rule can take parameters on(exp) { #rule can run conditionally micro-service1(...,*arg); micro-service2(...); rule_1(...); micro-service3(...); } } INPUT null OUTPUT ruleExecOut

The rules are composed of calls of other rules and/or micro-services. Micro-services are the simplest atomic operations. iRODS provide a large set of such operations and there are possibilities to extend this set.