Я целиком и полностью за чистый код, чистую модульную архитектуру, SOLID и DDD. Но я уверен, что при хорошем проектировании и реализации вам не понадобится ничего распиливать. У нас в iFunny PHP-монолит на 500 kLOC обслуживает что-то типа 15 миллионов пользователей в месяц, 2 миллиона онлайн в пиковые часы. В сервисы вынесены только инфраструктурные куски: рассылка push-уведомлений, сбор и агрегация аналитики и т.п.
Вот и я об этом. У нас пока таких цифр не планируется. Но позаботиться об архитектуре очень правильно и важно. Конечно, я буду делать по всем канонам DDD, CQRS используя Docker и так далее)
Основная победив это в правильности разделения ограниченных контекстов и связанности пользователей. Так если на примере танцев один и тот же человек может быть в разных контекстах разной роли. Где-то он танцор, где-то преподаватель, где-то судья, где-то оргкомитет. Дублировать везде ФИО дату рождения и все подобное - сложно, но хорошо. Делать без разделения контекстов - ещё больше проблем. Связанность не только в базе, но и коде. Поэтому и думаю как развязать узлы до старта работы.