Design and maintainability trade-offs in event-driven microservices : evaluating Dapr publish-subscribe
Lamberg, Pyry (2025)
Diplomityö
Lamberg, Pyry
2025
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2025081282229
https://urn.fi/URN:NBN:fi-fe2025081282229
Tiivistelmä
The idea of using reusable components in software engineering is well established and has evolved into microservices architecture, which implements the idea with small and independently deployable services. These independent services are often required to transfer information between multiple services to fulfil wider business requirements, creating a tight coupling between the services. Event-driven architecture addresses this issue by handling the communication primarily through asynchronous event-based messaging between services using a message broker. While event-driven architecture reduces service-to-service coupling, it introduces tight coupling between service and the broker. It requires each service to implement broker specific code across the whole system, increasing system complexity and maintenance efforts.
This thesis executes design science research methodology to develop and evaluate a microservice system that abstracts broker specific functionality into a Dapr sidecar. A baseline system with direct broker integration is compared against the Dapr-based variant in order to find out software maintainability, flexibility, and performance trade-offs.
As a result, this study demonstrates that by abstracting common functionality from microservices to a sidecar, software maintainability and flexibility is improved with the cost of performance. Future research should be done to further examine the impact of sidecars. Ajatus uudelleenkäytettävien komponenttien hyödyntämisestä ohjelmistotuotannossa on vakiintunut käytäntö, joka on kehittynyt mikropalveluarkkitehtuuriksi. Mikropalveluarkkitehtuuri koostuu pienistä, itsenäisesti julkaistavista palveluista, jotka yhdessä täyttävät liiketoimintavaatimuksia. Tällöin voi syntyä tiukkoja kytkentöjä palveluiden välille laajempien vaatimusten toteuttamiseksi. Tapahtumapohjainen arkkitehtuuri pyrkii ratkaisemaan ongelman palveluiden välisessä tiukassa kytkennässä hyödyntämällä asynkronista tapahtumapohjaista viestittelyä palveluiden välillä käyttäen viestinvälityspalvelinta. Tapahtumapohjainen arkkitehtuuri vähentää palveluiden välistä tiukkaa kytkentää, mutta samalla se tuo tiukan riippuvuuden palveluiden ja viestinvälityspalvelimen välille. Tapahtumapohjaisessa mikropalveluarkkitehtuurissa jokaisen palvelun on toteutettava koodia, joka on suoraan riippuvainen käytetystä viestinvälityspalvelimesta, mikä puolestaan kasvattaa järjestelmän monimutkaisuutta sekä ylläpidosta aiheutuvaa kuormaa.
Tässä diplomityössä käytetään Design Science Research -metodologiaa mikropalveluarkkitehtuurin kehittämiseen ja arviointiin, jossa viestinvälitykseen liittyvä toiminnallisuus abstrahoidaan Dapr-sidecar-komponentteihin. Vertailukohteeksi kehitetään järjestelmä, jossa palvelut kommunikoivat suoraan viestinvälityspalvelimen kanssa. Arviointi tehdään vertailemalla palveluiden ylläpitoon, joustavuuteen ja suorituskykyyn liittyviä eroja.
Tulokset osoittavat, että siirtämällä viestinvälitykseen käytettävän toiminnallisuuden erillisiin Dapr-sidecar-komponentteihin voidaan parantaa koodin ylläpidettävyyttä ja arkkitehtuurin joustavuutta, tämä kuitenkin saavutetaan suorituskyvyn kustannuksella. Tulevaisuudessa yleisesti sidecar-arkkitehtuurin laajempaa vaikutusta tulisi tutkia.
This thesis executes design science research methodology to develop and evaluate a microservice system that abstracts broker specific functionality into a Dapr sidecar. A baseline system with direct broker integration is compared against the Dapr-based variant in order to find out software maintainability, flexibility, and performance trade-offs.
As a result, this study demonstrates that by abstracting common functionality from microservices to a sidecar, software maintainability and flexibility is improved with the cost of performance. Future research should be done to further examine the impact of sidecars.
Tässä diplomityössä käytetään Design Science Research -metodologiaa mikropalveluarkkitehtuurin kehittämiseen ja arviointiin, jossa viestinvälitykseen liittyvä toiminnallisuus abstrahoidaan Dapr-sidecar-komponentteihin. Vertailukohteeksi kehitetään järjestelmä, jossa palvelut kommunikoivat suoraan viestinvälityspalvelimen kanssa. Arviointi tehdään vertailemalla palveluiden ylläpitoon, joustavuuteen ja suorituskykyyn liittyviä eroja.
Tulokset osoittavat, että siirtämällä viestinvälitykseen käytettävän toiminnallisuuden erillisiin Dapr-sidecar-komponentteihin voidaan parantaa koodin ylläpidettävyyttä ja arkkitehtuurin joustavuutta, tämä kuitenkin saavutetaan suorituskyvyn kustannuksella. Tulevaisuudessa yleisesti sidecar-arkkitehtuurin laajempaa vaikutusta tulisi tutkia.
