Skip to main content
Log in

An architectural style for scalable choreography-based microservice-oriented distributed systems

  • Special Issue Article
  • Published:
Computing Aims and scope Submit manuscript

Abstract

Service choreographies are a versatile approach for building service-based distributed systems. Many approaches can be found in the literature tackling different aspects of service choreographies, such as choreography realizability and conformance checking, distributed coordination, formal choreographic languages, and scalability. As of today, choreography scalability has not been specifically addressed through approaches that also consider coordination issues while still decoupling these two related aspects. Scalability is one of the most important properties to be considered when building distributed systems. It enhances the user-perceived performances and influences the overall dependability of the system. In particular, load scalability allows distributed service-oriented systems to effectively handle varying loads without suffering performance degradation. In this direction, microservice-based systems are able to scale thanks to the possibility of replicating those microservices exposed to growing loads, distributing their workload among different instances. By leveraging on our experience in coordinating service choreographies, in this paper, we propose a layered architectural style that allows to realize scalable microservice-oriented choreographies. The architecture integrates a fully-distributed coordination layer capable of ensuring the correct interactions and a load-balancing layer that allows to balance of coordinated requests. We discuss the properties of the proposed architectural style and evaluate its benefits on user-perceived performances.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. A prosumer is a service that is both a provider and a consumer.

  2. https://github.com/FudanSELab/train-ticket.

  3. https://microservices-demo.github.io.

  4. https://github.com/sosygroup/microservices-ticketing-system-prototype.

  5. https://locust.io.

  6. https://www.jolie-lang.org.

  7. http://bakerstreet.io/

References

  1. Peltz C (2003) Web services orchestration and choreography. Computer 36(10):46–52. https://doi.org/10.1109/MC.2003.1236471

    Article  Google Scholar 

  2. Basu S, Bultan T (2011) Choreography conformance via synchronizability. In: Proceedings of the 20th international conference on world wide web, pp 795–804. https://doi.org/10.1145/1963405.1963516

  3. Gössler G, Salaün G (2011) Realizability of choreographies for services interacting asynchronously. In: International workshop on formal aspects of component software. Springer, pp 151–167. https://doi.org/10.1007/978-3-642-35743-5_10

  4. Basu S, Bultan T, Ouederni M (2012) Deciding choreography realizability. ACM Sigplan Not 47(1):191–202. https://doi.org/10.1145/2103621.2103680

  5. Basu S, Bultan T (2016) Automated choreography repair. In: International conference on fundamental approaches to software engineering. Springer, pp 13–30. https://doi.org/10.1007/978-3-662-49665-7_2

  6. Lanese I, Montesi F, Zavattaro G (2015) In: De Nicola R, Hennicker R (eds) The evolution of Jolie. Springer, Cham, pp 506–521. https://doi.org/10.1007/978-3-319-15545-6_29

  7. Orlando S, Pasquale VD, Barbanera F, Lanese I, Tuosto E (2021) Corinne, a tool for choreography automata. In: Salaün G, Wijs A (eds) Formal aspects of component software. Springer, Cham, pp 82–92. https://doi.org/10.1007/978-3-030-90636-8_5

  8. Autili M, Inverardi P, Tivoli M (2018) Choreography realizability enforcement through the automatic synthesis of distributed coordination delegates. Sci Comput Program 160:3–29. https://doi.org/10.1016/j.scico.2017.10.010

    Article  Google Scholar 

  9. Autili M, Di Salle A, Gallo F, Pompilio C, Tivoli M (2019) Aiding the realization of service-oriented distributed systems. In: Proceedings of the 34th ACM/SIGAPP symposium on applied computing. In: SAC ’19. Association for Computing Machinery, New York, pp 1701–1710. https://doi.org/10.1145/3297280.3297446

  10. Dar K, Taherkordi A, Rouvoy R, Eliassen F (2011) Adaptable service composition for very-large-scale internet of things systems. In: Eyers DM (ed) Proceedings of the 8th middleware doctoral symposium of the 12th ACM/IFIP/USENIX international middleware conference, Lisbon, Portugal, 12 December 2011, pp 2–126. https://doi.org/10.1145/2093190.2093192

  11. Furtado T, Francesquini E, Lago N, Kon F (2014) A middleware for reflective web service choreographies on the cloud. In: Costa FM, Andersen A (eds) Proceedings of the 13th workshop on adaptive and reflective middleware, ARM@Middleware 2014, Bordeaux, France, December 8–12, 2014, pp 9–196. https://doi.org/10.1145/2677017.2677026

  12. Vincent H, Issarny V, Georgantas N, Francesquini E, Goldman A, Kon F (2010) Choreos: scaling choreographies for the internet of the future. In: Middleware’10 posters and demos track, pp 1–3. https://doi.org/10.1145/1930028.1930036

  13. Barker A, Besana P, Robertson D, Weissman JB (2009) The benefits of service choreography for data-intensive computing. In: Rauber T, Rünger G, Jeannot E, Jha S (eds) Proceedings of the 7th international workshop on challenges of large applications in distributed environments, CLADE@HPDC 2009, Garching Near Munich, Germany, June 10, 2009, pp 1–10. https://doi.org/10.1145/1552315.1552317

  14. Yoon Y, Ye C, Jacobsen H (2011) A distributed framework for reliable and efficient service choreographies. In: Srinivasan S, Ramamritham K, Kumar A, Ravindra MP, Bertino E, Kumar R (eds) Proceedings of the 20th international conference on world wide web, WWW 2011, Hyderabad, India, March 28–April 1, 2011, pp 785–794. https://doi.org/10.1145/1963405.1963515

  15. Gorbenko A, Kharchenko V, Romanovsky A (2009) Using inherent service redundancy and diversity to ensure web services dependability. Springer, Berlin, Heidelberg, pp 324–341. https://doi.org/10.1007/978-3-642-00867-2_15

  16. Bondi AB (2000) Characteristics of scalability and their impact on performance. In: Proceedings of the 2nd international workshop on software and performance, pp 195–203

  17. Abbott ML, Fisher MT (2015) The art of scalability: scalable web architecture, processes, and organizations for the modern enterprise. Addison-Wesley Professional, Boston

    Google Scholar 

  18. Baresi L, Filgueira Mendonça, D, Garriga M (2017) Empowering low-latency applications through a serverless edge computing architecture. In: European conference on service-oriented and cloud computing. Springer, pp 196–210. https://doi.org/10.1007/978-3-319-67262-5_15

  19. Lewis J, Fowler M (2014) Microservices a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Accessed June 2022

  20. Dragoni N, Giallorenzo S, Lafuente AL, Mazzara M, Montesi F, Mustafin R, Safina L (2017) In: Mazzara M, Meyer B (eds) Microservices: yesterday, today, and tomorrow. Springer, Cham, pp 195–216. https://doi.org/10.1007/978-3-319-67425-4_12

  21. Dragoni N, Lanese I, Larsen ST, Mazzara M, Mustafin R, Safina L. Microservices: how to make your application scale. https://doi.org/10.1007/978-3-319-74313-4_8

  22. Newman S (2015) Building microservices, 1st edn. O’Reilly Media Inc, Sebastopol

    Google Scholar 

  23. Autili M, Tivoli M (2014) Distributed enforcement of service choreographies. In: Cámara, J., Proença, J. (eds.) Proceedings 13th International Workshop on Foundations of Coordination Languages and Self-Adaptive Systems, FOCLASA 2014, Rome, Italy, 6th September 2014. EPTCS, vol. 175, pp. 18–35. https://doi.org/10.4204/EPTCS.175.2

  24. Autili M, Perucci A, De Lauretis L (2020) In: Bucchiarone, A., Dragoni, N., Dustdar, S., Lago, P., Mazzara, M., Rivera, V., Sadovykh, A. (eds.) A Hybrid Approach to Microservices Load Balancing, pp. 249–269. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_10

  25. Autili M, Di Salle A, Gallo F, Pompilio C, Tivoli M (2020) Chorevolution: Service choreography in practice. Sci Comput Program 197:102498. https://doi.org/10.1016/j.scico.2020.102498

    Article  Google Scholar 

  26. Autili M, Perucci A, Leite L, Tivoli M, Kon F, Di Salle A (2021) Highly collaborative distributed systems: synthesis and enactment at work. Concurr Comput: Pract Exp. https://doi.org/10.1002/cpe.6039

  27. Filippone G, Autili M, Tivoli M Synthesis of context-aware business-to-business processes for location-based services through choreographies. J Softw: Evolut Process. https://doi.org/10.1002/smr.2416

  28. Balalaie A, Heydarnoori A, Jamshidi P (2016) Migrating to cloud-native architectures using microservices: An experience report. In: Celesti A, Leitner P (eds) Advances in service-oriented and cloud computing. Springer, Cham, pp 201–215. https://doi.org/10.1007/978-3-319-33313-7_15

  29. Taibi D, Lenarduzzi, V, Pahl C (2018) Architectural patterns for microservices: a systematic mapping study. In: CLOSER 2018: Proceedings of the 8th international conference on cloud computing and services science; Funchal, Madeira, Portugal, 19–21 March 2018, pp 221–232. https://doi.org/10.5220/0006798302210232

  30. Li R (2015) Baker street: avoiding bottlenecks with a client-side load balancer for microservices. https://thenewstack.io/baker-street-avoiding-bottlenecks-with-a-client-side-load-balancer-for-microservices/. Accessed June 2022

  31. Konersmann M, Kaplan A, Kühn T, Heinrich R, Koziolek A, Reussner R, Jürjens J, al-Doori M, Boltz N, Ehl M, Fuchs D, Groser K, Hahner S, Keim J, Lohr M, Sağlam T, Schulz S, Töberg, J-P (2022) Evaluation methods and replicability of software architecture research objects. In: 2022 IEEE 19th international conference on software architecture (ICSA), pp 157–168. https://doi.org/10.1109/ICSA53651.2022.00023

  32. Kogias M, Iyer R, Bugnion E (2020) Bypassing the load balancer without regrets. In: Proceedings of the 11th ACM symposium on cloud computing. SoCC ’20. Association for Computing Machinery, New York, pp 193–207. https://doi.org/10.1145/3419111.3421304

  33. Niu Y, Liu F, Li Z (2018) Load balancing across microservices. In: IEEE INFOCOM 2018—IEEE conference on computer communications, pp 198–206. https://doi.org/10.1109/INFOCOM.2018.8486300

  34. Fielding RT (2000) Architectural styles and the design of network-based software architectures. PhD Thesis, University of California, Irvine

  35. Scalas A, Dardha O, Hu R, Yoshida N (2017) A linear decomposition of multiparty sessions for safe distributed programming. In: Müller P (ed) 31st European conference on object-oriented programming, ECOOP 2017, June 19–23, 2017, Barcelona, Spain. LIPIcs, vol 74, pp 24–12431. https://doi.org/10.4230/LIPIcs.ECOOP.2017.24

  36. Honda K, Mukhamedov A, Brown G, Chen T, Yoshida N (2011) Scribbling interactions with a formal foundation. In: Natarajan R, Ojo AK (eds) Distributed computing and internet technology—7th international conference, ICDCIT 2011, Bhubaneshwar, India, February 9–12, 2011. Proceedings. Lecture Notes in Computer Science, vol 6536. Springer, Cham, pp 55–75. https://doi.org/10.1007/978-3-642-19056-8_4

  37. Giallorenzo S, Lanese I, Russo D (2018) Chip: A choreographic integration process. In: Panetto H, Debruyne C, Proper HA, Ardagna CA, Roman D, Meersman R (eds) On the move to meaningful internet systems. OTM 2018 conferences—confederated international conferences: CoopIS, C &TC, and ODBASE 2018, Valletta, Malta, October 22–26, 2018, Proceedings, Part II. Lecture Notes in Computer Science, vol 11230. Springer, Cham, pp 22–40. https://doi.org/10.1007/978-3-030-02671-4_2

  38. Carbone M, Montesi F (2013) Deadlock-freedom-by-design: multiparty asynchronous global programming. In: Giacobazzi R, Cousot R (eds) The 40th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’13, Rome, Italy—January 23–25, 2013, pp 263–274. https://doi.org/10.1145/2429069.2429101

  39. Preda MD, Gabbrielli M, Giallorenzo S, Lanese I, Mauro J (2017) Dynamic choreographies: theory and implementation. Log Methods Comput Sci. https://doi.org/10.23638/LMCS-13(2:1)2017

  40. Weisenburger P, Wirth J, Salvaneschi G (2020) A survey of multitier programming. ACM Comput Surv 53(4):81–18135. https://doi.org/10.1145/3397495

    Article  Google Scholar 

  41. Giallorenzo S, Montesi F, Peressotti M, Richter D, Salvaneschi G, Weisenburger P (2021) Multiparty languages: the choreographic and multitier cases (pearl). In: Møller A, Sridharan M (eds) 35th European conference on object-oriented programming, ECOOP 2021, July 11–17, 2021, Aarhus, Denmark (Virtual conference). LIPIcs, vol 194, pp 22–12227. https://doi.org/10.4230/LIPIcs.ECOOP.2021.22

  42. Oberhauser R (2016) Microflows: lightweight automated planning and enactment of workflows comprising semantically-annotated microservices. In: 6th international symposium on business modeling and software design (BMSD 2016), vol 1, pp 134–143. https://doi.org/10.5220/0006223001340143

  43. Ben Hadj Yahia E, Réveillère L, Bromberg Y-D, Chevalier R, Cadot A (2016) Medley: an event-driven lightweight platform for service composition. In: Bozzon A, Cudre-Maroux P, Pautasso C (eds) Web engineering. Springer, Cham, pp 3–20. https://doi.org/10.1007/978-3-319-38791-8_1

  44. Monteiro D, Maia PHM, Rocha LS, Mendonça NC (2020) Building orchestrated microservice systems using declarative business processes. SOCA 14(4):243–268. https://doi.org/10.1007/s11761-020-00300-2

    Article  Google Scholar 

  45. Gutiérrez–Fernández AM, Resinas, M, Ruiz–Cortés A (2017) Redefining a process engine as a microservice platform. In: Dumas M, Fantinato M (eds) Business process management workshops. Springer, Cham, pp 252–263. https://doi.org/10.1007/978-3-319-58457-7_19

  46. Valderas P, Torres V, Pelechano V (2020) A microservice composition approach based on the choreography of BPMN fragments. Inf Softw Technol 127:106370. https://doi.org/10.1016/j.infsof.2020.106370

    Article  Google Scholar 

  47. Sun C-a, Wang J, Liu Z, Han Y (2021) A variability-enabling and model-driven approach to adaptive microservice-based systems. In: 2021 IEEE 45th annual computers, software, and applications conference (COMPSAC), pp 968–973. https://doi.org/10.1109/COMPSAC51774.2021.00130

  48. Guidi C, Lanese I, Mazzara M, Montesi F (2017) In: Mazzara M, Meyer B (eds) Microservices: a language-based approach. Springer, Cham, pp 217–225. https://doi.org/10.1007/978-3-319-67425-4_13

  49. Afzal S, Ganesh K (2019) Load balancing in cloud computing—a hierarchical taxonomical classification. J Cloud Comput. https://doi.org/10.1186/s13677-019-0146-7

  50. Malcom (2018) Load-balancing strategies. https://www.beyondthelines.net/computing/load-balancing-strategies/. Accessed June 2022

  51. Yu R, Kilari VT, Xue G, Yang D (2019) Load balancing for interdependent Iot microservices. In: IEEE INFOCOM 2019—IEEE conference on computer communications, pp 298–306. https://doi.org/10.1109/INFOCOM.2019.8737450

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gianluca Filippone.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Filippone, G., Pompilio, C., Autili, M. et al. An architectural style for scalable choreography-based microservice-oriented distributed systems. Computing 105, 1933–1956 (2023). https://doi.org/10.1007/s00607-022-01139-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-022-01139-5

Keywords

Navigation