Lessons learned in creating small and simple services

Sanjoy Roy (Unibet Ltd.)

Lightning talk - in English

Approved_talk approved

Small and simple services are always good. They are easy to understand and change. If any of the services does not meet your requirement, you can throw it and create a new one. That brings a huge developers' mind setup change in terms of building this type of system. Recently my team in Unibet has gone through this process. We have refactored our existing bonus system. It was a monolithic system. It was a big system, hard to make any new changes, time to market new feature was very high. So we have divided the existing system into multiple small and simple services. All the services are created in terms of business capabilities to provide business values to our valuable customers. These services have their own bounded context. They talk to each other using their REST apis. They listen to the events happening across whole Unibet's system and take appropriate action if necessary. These services are also monitored to check their health.

We have used REST level 3, in-memory data grid (Hazelcast), EDA, continuous delivery, different testing strategies (unit, integration, end-to-end).

It is really pleasant and challenging journey for the whole team to learn these concepts and create small and simple services. In this talk I want to share this experience with others.