
Behind the scenes
Our senior architects are domain-driven
by Nicolas Lefebvre
At Digitec Galaxus, we develop our online stores and ERP system ourselves. Our tech radar shows which techniques, tools, platforms and programming languages we use to do this, and which further ones may soon be deployed.
Our customers are familiar with the online shops digitec.ch and galaxus.ch. For our software development teams, however, the shops are just the tip of the iceberg. Beneath the water lies a broad technical foundation that we continuously adapt to new circumstances. For example, we introduced Apache Kafka to make it easier to distribute the ever-increasing amounts of data and switched from ASP.NET MVC to the React stack to reduce the load times of our online shops. At Digitec Galaxus, we also develop our ERP system in-house. Back when the company was founded in 2001, the three founders developed the system themselves. Since then, Product Development has taken over the responsibility with around 300 employees.
Since 2017, our tech radar has helped us keep track of our broad technology landscape and serves as an important guide for our teams. We took inspiration from the Thoughtworks Technology Radar. Accordingly, we also use their framework. The tech firm Thoughtworks uses the dots on the radar to track Ā«interesting thingsĀ», which they refer to as Ā«blipsĀ». Marvel fans will recognise the term; the Blip is the event when Thanosā Snap was reversed.
Our Ā«trialĀ», Ā«holdĀ», Ā«adoptĀ», and Ā«specificĀ» rings represent various life cycles of blips in our work processes and system landscape. Hereās what they mean:
These blips are being tested on a small scale to assess whether they can be adopted. Theyāre generally used and tested by one or two teams. Our software engineers can therefore assume that initial experience values with this blip are at the very least available internally.
One example is Blazor: weāve done a proof-of-concept with it and plan to deploy it in our logistics in early 2023 to provide faster user interfaces.
These are blips that we want to phase out. We may still use them, but want to avoid them in new projects.
Currently, Grafana is on hold; weāve started collecting our metrics with Datadog and therefore want to replace Grafana with Datadog dashboards.
These are blips which are widely used within our company, meaning teams can count on broad know-how if they have questions or problems. Many of these blips are operated and developed by our platform teams. We can provide the associated infrastructure (more or less) at the push of a button.
For example, weāve been relying on continuous deployment for a long time. This means that we automatically deploy any changes to the code into production. We also believe strongly in pair and mob programming, which all teams use as needed.
We use these blipsā strengths for specific deployment scenarios in a few teams only; theyāre not widely used.
A prominent example is Elasticsearch, which is primarily used for our online shop search.
Each blip is represented as either a triangle or a circle. Triangle blips have changed rings since the last tech radar update, meaning theyāve either moved into a different life cycle or are new on the radar. Circle blips havenāt changed position.
To this day, we rely heavily on .NET. About 80% of the code in our 60 or so operational services is written in C# and virtually all of them run in Microsoft Azure. These services support our buyers, logisticians and in-store crews in their work and run our online shops. Microsoft is continually developing C# at a rapid pace and opening it up to the open source community. This makes us very optimistic about the future. Weāre staying on the ball and are currently planning to migrate all systems to C# 11 and .NET 7.
The second-largest player in terms of programming languages in our tech stack is TypeScript, with a share of just under 8%. We use it in the frontend of our online shops. Other programming languages, such as GoLang or PHP, are also used, but eke out a niche existence.
Unless thereās a good reason not to, we run our services in Azure. One exception to this is our data platform, which runs on Google Cloud ā mainly because Google offers us BigQuery features that we havenāt found in other cloud solutions. We use the data platform to create analytics for making strategic decisions and to train our machine learning models, which are used in a wide variety of scenarios. Python is our language of choice for the most part, because itās widely used in this area, so there are a lot of open source resources available.
In addition, we use a variety of tools, frameworks and cloud services. Thanks to our agile and experimental way of working, new ones are regularly added or existing ones removed.
Once each quarter, Team Q ā an enabling team, according to the concept of team topologies ā updates our tech radar. By the way, weāre looking for someone to join our team ā hereās the link to our open position.
Which blips should we absolutely examine more closely? Which ones do you use that youāve made good experiences with? Leave your questions and input about our tech radar and tech stack in the comments below!
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 š
·š
°š
²š
ŗš
“šš
¼š
°š
½.Ā