Towards Domain-Driven Design in Haskell

TODO add Articles to my Website where i write about my technical findings: put it under research

It rests on the idea and belief that software design principles and concepts are independent from the programming language. How the respective principles are implemented however does depend completely on the chosen language.

Hypothesis: the principles we are using in OOP to write industry-strength software are valuable and good and they are programming language independent, therefore apply to HAskell too. What is language dependent is how they are actually implemented

The question is now, what is good software design? The following principles have been established over the last 2-3 decades:

The concepts to

Now the question is how to implement these concepts, satisfying the above principles to arrive at a good software design?

In the following we propose a new approach to Software Design in Haskell, by applying DDD (as of Evans and Vernon) to Haskell. DDD is successfully applied to OO systems, where it leads to much cleaner design, which in particular reflects the Ubiquitous Language, which is a language which reflects the domain. The questions, whether we can bring these concepts and patterns to Haskell as well?

yes there are great librsries but how to put them together in a functional architechture is not so clear. we need something like spring in Haskell

TX demarcation Aggregates with CQRS+ES in Haskell

DDD applies to Business and Enterprise domains, where communication with non technical Domain Experts is a fundanental Part of the process. for such applications there are some established architechtures and DDD

towards DDD in Haskell: introducing all tactical design concepts from DDD

shared understanding of the Domain. not Database-driven or object-oriented

strategic vs. tactical design, here we focus on tactical design