Our senior architects are domain-driven
They are feared throughout Digitec Galaxus' software development and call themselves Team Q. We're talking about our five senior architects. But their daily routine is not only characterized by James Bond analogies, but also by hot air, butter and Kafka. And they are looking for another crew member.
Q, a currently often used letter. At Digitec Galaxus, however, not because of the dubious American government employee. Team Q is named after the competent computer specialist with a sense of humor from the recent Bond films. Q, that is the association of the five senior architects at Digitec Galaxus, internally also called Domain Architects. The name suggests it: The team works according to the principles of Domain-Driven Design to divide our software system technically into so-called contexts. For example, there is the context responsible for purchasing our product range or one for goods issue in logistics. The advantage: If a developer works in the context goods issue, he can be relatively sure that he does not change the logic in other contexts. If changes are made to the interfaces, caution is advised. In the case of overarching changes, the interfaces help to assess which other contexts are affected.
The migration of our previous monolithic system running in Azure with just over 2 million lines of C#-.Net core code and a SQL database with 1700 tables to a distributed system hosted on Kubernetes has shaped Team Q's day-to-day life for several years. We call this process modularization. In the current target picture, the system is divided into roughly 40 vertically integrated units that follow microservice patterns. A team of developers is responsible for each unit, which includes one or more contexts.
Team Q is spatially distributed throughout the software development department. However, the weekly "sit-down" (as a contrast to the "stand-up" (or Daily) of the developer teams) is a fixed program item. Team Q still has something mysterious about it. We're changing that now: We'll show you who's behind Q and which areas the senior architects are working on.
Online shop area
Andreas - Self-proclaimed expert for hot air
Our most experienced architect, Andreas, joined us a few weeks before the lockdown and always has a good saying up his sleeve. Hot air and still a lot behind it: He's already tackled quite a few things in this short time, including the founding of the Legonauts guild. The guild aims to promote the exchange of experience between teams. He was also involved in creating and shaping our new roles "Software Architect" and "Lead Engineer".
The tech stack in OSA consists mainly of C# .NET Core on the backend and ReactJs on the frontend with GraphQL in between. Currently, Andreas is taking care of further developing our own UI framework and making the store run independently from the rest of the monolith to simplify and speed up the developers' work. The teams are responsible for both the backend and the frontend of their context.
Domain Operations
Boško - With our short-living business, we chisel our decisions in butter instead of stone.
Boško is at the same time the longest serving, but also the youngest Domain Architect. He started with us as a software developer and is now an Architect in charge of Operations. In the last few months, we put most of the long-term planned projects (we call them initiatives) on hold in order to quickly adapt the processes to the massive increase in order volume caused by the Corona pandemic. In doing so, Boško is in strong communication with the development teams to make sure we don't incur excessive technical debt. He regularly attends Meet-ups; for years he has participated in SoCraTes Days. In addition, he has pushed the open source idea at our company and published our ProjectsRuler on Github. To ensure that we are well positioned organizationally for the planned growth, we are dividing the operations division into two areas. We are currently looking for a Domain Architect for one of them.
Category Management and Finance
Mark - Yesterday we were on the precipice. Today we are one step further.
Mark's schedule is always full: Verbal exchanges with the teams and direct support of their solution architects are very important to him. A big focus of his work is modeling our business processes in Category Management and Finance. To a large extent, these are still implemented in the monolith and have to be distributed to contexts that communicate with each other synchronously or asynchronously. Before the pandemic, Team Q met regularly for whiteboard sessions to work out how the contexts interact in such business processes. Remotely, it's a bit more complicated, but we're working on it. One topic we are particularly concerned about in this context right now is Sagas.
Platform and SysOps area
Olivier - Kafka apprentice and RavenDb lobbyist
Olivier has been with us for two and a half years. In his first three months, he consolidated the existing ideas and formulated the vision for our distributed system architecture. He then took over the development of the DataTransformer: A library to send data changes from SQL Server to the Azure Service Bus with a few milliseconds delay. He also wrote the Domain Modeler, where we maintain our context map. Olivier is a Domain Architect in the Platform and SysOps area. This domain consists of platform teams that make it easier for the development teams of the other domains to work autonomously with the cloud platform. This is how we get ready for a flexible DevOps organization. Team BlackJack, for example, runs our SQL server and MongoDb clusters. Team Bender! is responsible for the Kubernetes cluster and provides tools like the "reference module" as a template for a standard .NET Core microservice with connectivity to DataDog, Kafka, Azure Service Bus, databases, etc. Thanks to this template, we can deploy a new microservice very easily. Automation of CI/CD pipelines on Azure DevOps further supports this process. We also strengthen the bootstrapping and basic functionality of our microservices through shared packages.
Most services are built according to a design inspired by the Clean Architecture.However, the feature teams can define the design of their services themselves. Here a schematic representation:
Currently, Olivier is heavily involved with Kafka. We want to migrate a large part of our data pipeline to Kafka to better handle backfills, among other things. Besides, he is a fan of RavenDb and is always looking for possible applications. So far in vain: On the Tech-Radar, which is updated regularly by Team Q, you can see which technologies we are working with.
Become a part of Team Q
Do these challenges excite you and do you want to shape the future of e-commerce with us? Here you can find our open position.
As the first full-time developer at Digitec Galaxus, I later was team leader of Goldfinger and Bender! and head of the architecture guild (the A-Team). Currently I am, together with our Domain Architects, only guardian of the ivory tower. As enabling team we permanently refine the target architecture, work closely with the development teams and form the Architecture Review Board.
Because of my unimaginable build breaks and piratical deploys on Friday afternoon they also call me 🅷🅰🅲🅺🅴🆁🅼🅰🅽.