Benchmarking Performance of Data Serialization and RPC Frameworks in Microservices Architecture: gRPC vs. Apache Thrift vs. Apache Avro

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Gurel, Tayfun
dc.contributor.author Nguyen, Thuy
dc.date.accessioned 2016-11-02T09:48:08Z
dc.date.available 2016-11-02T09:48:08Z
dc.date.issued 2016-10-27
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/23386
dc.description.abstract Microservices Architecture is becoming an prominent standard when it comes to designing high-level architecture of complex applications. Each microservice addresses one small part of the application with very specific functionalities for very specific business requirements. With such limited scope, it can be deployed as a standalone service. Different microservices in the same system can be written in different programming languages, depending on the tasks they need to accomplish. Despite its popularity, microservices architecture also has challenging issues and communication between the microservices is one of those. RPC has been universally adopted in large distributed software systems with the client-server model of computing and is suitable for use in microservices architecture. IDT Messaging Oy’s MagicWords system consists of several microservices written in Java and Python and uses MsgPack RPC to facilitate inter-services communication. However, MsgPack is outdated, not widely adopted and hence lacks continuous updates, bug fixes, as well as community support. The goal of this thesis is to investigate which RPC framework I should implement to replace MsgPack. I choose three popular open-source data serialization and RPC frameworks for my investigation, they are gRPC, Apache Thrift, and Avro. I perform extensive benchmarking tests to evaluate their performance in terms of message serialization and end-to-end communication for both Java and Python implementations. The execution time, CPU usage and memory usage are recorded. I then analyze the performance results as well as the implementation style of each framework. The performance of gRPC even though is not the best in all scenarios, it is in general very good. Furthermore, gRPC has comprehensive documentation, follows modern style, and is still actively developed and therefore the conclusion is to adopt gRPC for MagicWords. en
dc.format.extent 53+6
dc.language.iso en en
dc.title Benchmarking Performance of Data Serialization and RPC Frameworks in Microservices Architecture: gRPC vs. Apache Thrift vs. Apache Avro en
dc.type G2 Pro gradu, diplomityö fi
dc.contributor.school Perustieteiden korkeakoulu fi
dc.subject.keyword microservices en
dc.subject.keyword RPC en
dc.subject.keyword performance en
dc.subject.keyword gRPC en
dc.subject.keyword apache thrift en
dc.subject.keyword apache avro en
dc.identifier.urn URN:NBN:fi:aalto-201611025487
dc.programme.major Digital Media Technology fi
dc.programme.mcode SCI3023 fi
dc.type.ontasot Master's thesis en
dc.type.ontasot Diplomityö fi
dc.contributor.supervisor Vuorimaa, Petri
dc.programme Master's Programme in ICT Innovation fi


Files in this item

Files Size Format View

There are no open access files associated with this item.

This item appears in the following Collection(s)

Show simple item record

Search archive


Advanced Search

article-iconSubmit a publication

Browse