There’s something satisfying and fascinating about leaning back in your chair and looking back at the blueprint, the architecture of a fully distributed system you’ve brought to life.
At least that’s what I thought, when I promptly made it the primary focus in my final project presentation for i8c. In this presentation, which each intern was asked to do about his few months long stint at i8c, I enthusiastically preached the benefits of microservices.
| i8c being the company where I did my internship and the mother of the company I now work for; Archers
Luckily for me, Thomas, one of the managing partners at Archers, sat in the audience. Just like me, he had –recently?- become fascinated by this concept and had started to believe that this would be one of the next big steps IT would take.
Later on, a beer in hand, we came to talk about my presentation, microservices in general and what it meant to be an architect. Clearly, I was interested and a few weeks later I received a call from Thomas asking me if I would like to have another conversation about Archers.
This time without a beer, we sat down for a more formal discussion on my own and Archers’ future. He told me that he wanted to invest a lot of time and resources to get Archers' microservices knowledge up to industry standards and ultimately those words really resonated with me. A company with a vision I could get behind and supported by ambitious, driven and experienced architects seemed like a great place to kickstart my career and so I have…
Fast forward half a year and here we are, digging hard into the complex and expansive world of distributed systems.
Just to have something to hold on to, we chose a real world insurance case to explore each aspect of microservices with. In the shape of an application that handles the calculation and payout of insurance claims, we strive to find the ideal way of handling microservices implementation patterns, event driven architecture, event sourcing, cloud deployment, continuous delivery/integration and much more.
We started by concentrating on service design, making sure that we compartmentalized the system into logical, modular, independent and small blocks. Implementation of the services soon followed. After deciding on a Java Spring Boot, Docker & Kubernetes stack, we built a templating service to facilitate the construction of all other functional services. Building functionality for calculations on insurance claims or keeping up with customer history all of a sudden doesn’t seem like such a daunting task when your codebase is so small and deploying is a breeze.
Does that mean that building microservices doesn’t come with its own challenges? No. There’s a long road ahead with a lot of problems left for us to tackle. Next up, storing data.
Using a distributed database like Cassandra isn’t all that hard these days, with the abstraction that frameworks like Spring Data provide. However, actually understanding what goes on behind the scenes is something that a company full of architects should really take to heart and suddenly that poses a problem. A wide column store database is mind-warping for those that are raised to think in a traditional relational table.
Fortunately, we are not alone in this. Every month there’s an Archers Knowledge Day. A day where all of us come together to share what we have learned so far. It’s where we give presentations to keep our other colleagues working hard on other important IT evolutions, informed and up to speed on all things ‘microservices’. Be it a presentation on Cassandra and the CAP theorem or about containers and how to orchestrate them, no subject is too small to share with our peers.
It’s where we take our questions too. Someone else might be more informed on how to tackle CQRS or whether to use synchronous or asynchronous communication. Some heated and highly informative debates have emerged from these monthly meetings!
So yes, what’s next? There are messaging brokers and the Elastic stack to look at, there are tools like Chef, Ansible and Puppet to compare and experiment with. Lots of exciting and challenging stuff left on our plate, and we’re itching to keep digging.
One thing we know for sure is that the fairy dust around microservices has finally settled and it’s time for companies to fully embrace this way of developing.
Sounds scary? Archers will be ready to guide you along the way.