Domain Driven Design makes you think about the business

How we discovered big shift an auction platform has made at the DDD training.

Adam Brodziak
2 min readJun 24, 2016

At Domain Driven Design training we’ve been given an exercise to model domains of Allegro (more on what’s that later) and try to mark which ones belong to Core Domain. The modeling phase went quite smooth, but we’ve faced a problem when it came to choose Core Domain of the business. My colleagues and I argued and could not came to conclusion. In hindsight the reason is obvious, but first let me tell you a story.

This logo is a synonym for buy and sell online in Poland.

Allegro is an auction platform that was originally coded over the weekend and quickly became very popular in Poland. To give you an impression how much success they’ve got — the tried to enter the Polish market, but failed miserably co compete against local player despite the brand and investments. Back then Allegro was much better in terms of user experience, but that’s different story. Right now the company is true eCommerce giant with several brands (including some abroad) and development offices in few cities.

The biggest alternative on the market is a spinoff made by the same company called OLX with slightly different target. Currently OLX is an actual auction platform where people put their no longer needed stuff for sale. On the other hand Allegro transitioned into a platform for shops and professional merchants and became more of a Internet price comparison engine. Which gets us to the point of Core Domain disagreement we’ve faced during the exercise.

My imagination of modern Allegro was the shopping mall, where convenience and variety of choice is the most important factor. In this case the easiness of finding the right goods, UX of checkout and payment are top priority and Core Domain. My colleagues thought of old school auction platform (that Allegro used to be) where user trust is top priority, so comments and ranks belong to core. The trainer said that we’ve spotted business shift , which results in Core Domain transition as well.

Understanding such business changes its very important, because it changes the system dynamics. In case os such big shift of Core Domain the whole company is affected actually. Personally I wonder how it is reflected in the development and system architecture. I can only guess that new Core Domain becomes the new shiny thing where best people work, starting from scratch and integration with legacy code is done using Anti Corruption Layer.

Overall the DDD training was a great experience. It was well prepared and held, modeling and coding exercises were cool too. The biggest benefit though was how Domain Driven Design approach enabled us, developers, to think in business terms, not technical. That seems to be the biggest advantage of DDD.