Choreography and Orchestration: A Synergic Approach for System Design