Pointers from one of the white paper I read:
- Apply the componentization principle: Avoid embedding business rules into the application so that a tightly coupled design doesn’t constrain business.
- Apply granularity, modularity, and reuse principle: Reduce time to market by enabling modifications to the business rules and process flows quickly and independent of the application code.
- Apply the loosely coupled invocation principle and interoperability along with service consumption pattern: Seamlessly integrate other systems like payment services, booking etc. and also consume functionality from other systems as services.
- Apply service identification, design, and consumption principle: Expose the repetitive business tasks as services. For example, retrieving member information, generating reward certificates, etc.
- Apply process design, granularity and composite-ability principle: Design the desired flight reward booking process and other optimal sub-processes.
- Apply process metrics, analyze the metrics and improve the business processes: Compute the number of reward booking made in a day, loss of business due to not allowing purchase of shortage miles, etc.
- Apply versioning principle: Define process and service validity and manage old and new versions of processes and services so that they co-exist for a certain period of time before new processes and services fully take over.