В прошлом посте мы разбирали Transactional Script - отличный инструмент для старта. Но любой проект развивается. Со временем вы начинаете замечать, что Transactional Script становится сильно усложненным. В них добавляются простые бизнес-инварианты, дополнительные проверки и сами структуры данных становятся довольно сложными. Скрипт перестает быть читабельным, занимает несколько экранов, а логика начинает дублироваться. Кажется, что самое время достать "тяжелую артиллерию" из Domain Driven Design - паттерн Domain Model. Но подождите начинать тратить ресурсы и время на проектирование архитектуры с Аггрегатами. Если ваша система относится не к главному бизнес-домену (Core Domain), а к вспомогательному (Supporting Domain) или общему (Generic Domain), а бизнес-процесс все еще не такой сложный, то идеальным решением становится паттерн Active Record. Паттерн был описан Мартином Фаулером в его книге Patterns of Enterprise Application Architecture (2002) и популяризирован такими фреймворками, к