Strict ordering guarantees for event-source systems
MetadataShow full item record
- Studentoppgaver (TN-IDE) 
The digital world is constantly developing globally, more people are connecting to the internet every day and companies that used to be national businesses are developing into international businesses. The constant stream of new users being able to use the internet increases the demand for both old and new service providers. To cope with the potential millions of users companies relies on breaking their services up into micro-services, on multiple different servers providing the users with high availability, low latency, and disaster tolerance(i.e data center failure). Micro-services does provide many benefits for the providers, but it introduces a difficult challenge, how to send messages to multiple replicas in a strict order. Many service providers such as Facebook, Netflix, and SoundCloud rely on event-source systems such as Apache Kafka, allowing micro-services to subscribe to topics and let them be decoupled from each other. If strict ordering was possible with Kafka many providers would not have to develop complex atomic multicast systems to preserve message ordering. This thesis describes how it is possible to achieve atomic multicast by using Kafka and demonstrates the capabilities by an implementation we call AtomicKafka. AtomicKafka is a content based strict ordering event-source system that implements an atomic multicast algorithm. We also present an optimized algorithm specifically for Kafka to utilize the way Kafka partitions topics to increase performance. The results of the evaluation show that when sending 40.000 messages we got an baseline average of 83.6 deliveries per second. For the evaluation we were able to reach an average of 26.6 deliveries per second with 10% AMCast messages, and 15.25 deliveries per second for 50% AMCast messages.
Master's thesis in Computer Science