Teiva Harsanyi
1 min readDec 16, 2020

--

Theoretically, yes. A Person is a Person. What I was trying to point out are the drawbacks related to a company-wide model.

Having a shared model generates coupling between the different business domains which may lead to a horrendous amount of technical/human complexity. Though it's probably an option to consider for small companies, at a larger scale, it becomes harder to handle.

If we take a step back, what is even the benefit of forcing a common model? Why can't we let the domain experts deciding in what's their most accurate representation of whatever business entity? To me, it creates more problem than it solves. Being a developer (not a fuzzy data architect without a concrete understanding of how systems are working), every time I saw a tentative of it at large scale, it was a complete failure.

Of course, there are probably some exceptions. But again, to me, it's just an extra burden. Besides that, there are other approaches. For example, applying the shared kernel pattern (a minimal set of commonalities) might be a way to go? But definitely, canonical models at large scale should be avoided in my opinion.

--

--

Teiva Harsanyi
Teiva Harsanyi

Written by Teiva Harsanyi

Software Engineer @Google | The Coder Cafe newsletter (https://thecoder.cafe) | 📖 100 Go Mistakes author | 改善

No responses yet