Blue Bird’s Microservices Journey
Initially, the writing was about microservice architecture design pattern. Thinking to give some background contexts, then Voilà! the topic changed to the “background” first, deferring design pattern until next writings.
Currently, Blue Bird Group is running ambitious sprint-marathon digital transformation initiatives.
Sprint-marathon means activities that need quick progress and carried out in a long period of time
Since the emergence of online ridesharing, customer’s preferences were also shifted. Price certainty become the king of the game. This gave a slight — or huge — impact to business. To catch-up the changing of business landscape, Blue Bird need to make a breakthrough. At that time, we were still using third party product for taxi ordering systems. Relying on external factor with “relatively” slow feature updates certainly won’t bring us to the level of competition. In short, Company decided to develop our own taxi ordering system by inhouse team.
As a company, we need to be Agile to be able to drive and response to business environment changes, and so do the systems behind. Microservices give us that privilege. Breaking down functions into small decoupled autonomous services makes the overall system Agile. Faster feature delivery, shorter deployment cycle, and minimum impact for each deployment. Team members are also happier as less lines of code to master compared to understanding giant complicated monolith codes.
There are several squads here, each handles different system. The number of squad is keep growing as new applications are introduced every some time.
I am part of taxi dispatch system squad. With 60+ microservices, the system has been transformed to complex system. Thanks to microservices architecture, it helps simplified the development and maintenance.
The system has been running for 2 years now, a lot of optimizations and refactors here an there in addition to new feature developments. In term of traffic, post pandemic gives another challenge as number of transactions are almost back to normal. We need to put some efforts to achieve higher scalability, availability, and reliability.
Our microservice journey has just begun, there is still long way to go. Will try to share some practices here. Might not be the best one, but at least it works for us, and hopefully can give insight for those who has concern.