Active Record

Active Record combines data, persistence operations, and some domain behavior in model objects. It fits CRUD-oriented applications and frameworks where the ORM model is an intentional application boundary.

src/app/
├── interface/
├── services/
└── models/

Complete Configuration

deply:
  paths: ["."]
  exclude_files:
    - '.*/\.venv/.*'
    - '.*/tests?/.*'
    - '.*/migrations/.*'
  layers:
    - name: interface
      collectors:
        - type: directory
          directories: ["src/app/interface"]
    - name: services
      collectors:
        - type: directory
          directories: ["src/app/services"]
    - name: models
      collectors:
        - type: directory
          directories: ["src/app/models"]
  ruleset:
    models:
      disallow_layer_dependencies: [interface, services]
    services:
      disallow_layer_dependencies: [interface]

Controllers may use models directly in a deliberately simple application. Use the service layer only when workflows span multiple models or external resources. Do not claim persistence independence while domain behavior depends on ORM model APIs.

Deply can keep models independent from delivery code, but it cannot verify ORM mapping correctness, transaction boundaries, or model cohesion.

Validate

deply validate --config=deply.yaml
deply analyze --parallel --config=deply.yaml

Reference: Fowler’s Active Record.


This site uses Just the Docs, a documentation theme for Jekyll.