Real Decision

DTO-Centric Application Design

Problem

Passing ActiveRecord models across layers leaks persistence concerns into business logic and APIs.

Decision

Introduced immutable DTOs as the contract between controllers, services and repositories. Validation, mapping and transport concerns remain separated from domain behavior.