GraphQL query language's feasibility in a microservice architecture
Ylisiurunen, Markus (2019)
Ylisiurunen, Markus
2019
Tietotekniikka
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2019-05-20
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201905311793
https://urn.fi/URN:NBN:fi:tty-201905311793
Tiivistelmä
The goal for this thesis was to introduce a new query language called GraphQL and compare it to a more generally known communication pattern called REST. More specifically, the comparison of the two was done in the context of microservices by evaluating the options based on performance, data consumption, technology maturity and suitability, scalability, and speed of development.
The thesis first discusses the requirements for communication in a microservices architecture and introduces some of the currently used communication protocols, such as Protocol Buffers and Thrift. Then we move on to GraphQL and listing its features mostly based on the official GraphQL specification from 2018. Finally, we compare GraphQL to REST based on the earlier criteria.
We found that GraphQL provides much more flexibility, is better with data consumption, can increase the speed of development and possibly is easier to scale in the microservice environment with schema stitching. On the other hand, we found that REST can perform significantly better at least in comparison to some implementations of GraphQL.
The thesis first discusses the requirements for communication in a microservices architecture and introduces some of the currently used communication protocols, such as Protocol Buffers and Thrift. Then we move on to GraphQL and listing its features mostly based on the official GraphQL specification from 2018. Finally, we compare GraphQL to REST based on the earlier criteria.
We found that GraphQL provides much more flexibility, is better with data consumption, can increase the speed of development and possibly is easier to scale in the microservice environment with schema stitching. On the other hand, we found that REST can perform significantly better at least in comparison to some implementations of GraphQL.
Kokoelmat
- Kandidaatintutkielmat [8799]