In Relay42 we have been using microservices before microservices were a thing. As such, we needed a way to communicate in between each of our microservices. During the years we have been using ActiveMQ as an enterprise message bus, but with the increase of our global presence, increase of our clients in both raw numbers and in traffic volume, we started hitting some limitations of the technology so we had to switch to something more modern: a streaming solution.
This talk will briefly discuss why we chose Kinesis over Kafka. Then it would shortly outline the plan we had to replace our ActiveMQ codebase with its Kinesis equivalent without losing developer velocity.
The main part of the talk would focus on the challenges we faced and the lessons we learned on making everything reactive, AWS-friendly and the benefits we got in terms of performance, predictability and stability. We will see a lot of real-life code, and briefly see some examples of unit and integration testing the above code.
The talk will require advanced knowledge of Java, Spring and basic knowledge of a streaming solution like Kinesis, Kafka, Storm or an equivalent tech, and basic knowledge of reactive programming with Reactor or RxJava.
Session Level: Advanced