Це залежить від домену. DDD не вказує, що парадигма програмування орієнтована на об'єкт. Однак об'єктно-орієнтована парадигма добре підходить для типового застосування, яке має зберігатися в базі даних.
DDD просто заявляє, що ви повинні побудувати своє програмне забезпечення навколо моделі домену, яка представляє актуальну проблему, яку програмне забезпечення намагається вирішити. Якби ця проблема була, наприклад, математичною за своєю суттю, то реалізація доменного шару за допомогою функціонального програмування та незмінних структур даних мала б багато сенсу.
Якщо, з іншого боку, проблема більше стосується типового корпоративного додатка, і ви використовуєте незмінні об'єктні структури для всіх об'єктів вашого домену, то я б заперечував, що ви не слідуєте DDD. Я можу придумати щонайменше два аргументи:
Ваша реалізація не представляє доменну модель вашого проблемного домену. У цьому випадку ваш проблемний домен складається з організацій, які мають змінити стан. І це не ви реалізували.
У вас немає всюдисущої мови. Мова та поняття в доменній моделі не відповідають тому, що використовують доменні експерти.
Примітка: DDD використовує незмінні об'єкти, де це доречно, їх просто називають об'єктами цінності.
Тому я не кажу, що ви не можете створити додаток для баз даних, використовуючи суто функціональні структури даних, і я не кажу, що ви не повинні. Я просто не думаю, що ви можете назвати його DDD, залежно від типу програми