View on GitHub

trainticketworkflows

TrainTicketWorkflows

This page shares resources from our work in the ICSE 2022 NIER Track, titled, ‘A Case for Microservice Orchestration Using Workflow Engines’. The preprint of the artifact can be acessed through arxiv, using this link: https://arxiv.org/abs/2204.07210

This work was enabled due to the work by FudanSE lab in their research:-

X. Zhou et al., “Fault Analysis and Debugging of Microservice Systems: Industrial Survey, Benchmark System, and Empirical Study,” in IEEE Transactions on Software Engineering, vol. 47, no. 2, pp. 243-260, 1 Feb. 2021, doi: 10.1109/TSE.2018.2887384.

Microservices

Microservices are independant, losely coupled services that allow practitioners to divide their applications into independant units.

This independant microservices, can then:-

However, despite of these benifits, adopting microservices have certain associated challenges.

Therefore, it is important to make critical decisions, in a timely manner.

A contentious decision is to decide whether to compose microservices using Orchestration or Choreography.

While choreography sounds more appealing,

In our work:-

The findings of our study did leave considerable proof that orchestration does have an impact on debugging time. Additionally, we find that utilization of frameworks can speed up the processes even more by reliving the developer of low-level distributed tasks.

Environmental Set up

Pre-reqs

Steps to Set up

1) Ensure that the Temporal server is up and running (see temporal docs for reference) 2) Navigate to the system with the respective fault number from the package 3) Use ‘docker-compose up’ from command line to load the system

Steps to replicate faults

After loading the environment with the respective fault, follow the steps from the original bench mark system, in order to replicate the fault. Follow the repository below for a details of the fault:- https://github.com/FudanSELab/train-ticket/wiki/Fault-Description