Microservices Monorepo

In a microservices monorepo, each service owns its implementation and can share only deliberate contracts or libraries. Source imports must not turn separate services into a distributed monolith.

services/
├── orders/
├── billing/
└── identity/
packages/
└── contracts/

Complete Configuration

deply:
  paths: ["."]
  exclude_files:
    - '.*/\.venv/.*'
    - '.*/tests?/.*'
    - '.*/generated/.*'
  layers:
    - name: orders_service
      collectors:
        - type: directory
          directories: ["services/orders"]
    - name: billing_service
      collectors:
        - type: directory
          directories: ["services/billing"]
    - name: identity_service
      collectors:
        - type: directory
          directories: ["services/identity"]
    - name: shared_contracts
      collectors:
        - type: directory
          directories: ["packages/contracts"]
  ruleset:
    orders_service:
      disallow_layer_dependencies: [billing_service, identity_service]
    billing_service:
      disallow_layer_dependencies: [orders_service, identity_service]
    identity_service:
      disallow_layer_dependencies: [orders_service, billing_service]
    shared_contracts:
      disallow_layer_dependencies: [orders_service, billing_service, identity_service]

Deply can prevent source-level service coupling. It cannot prove independent deployment, database ownership, API compatibility, network resilience, or team autonomy.

Validate

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

Reference: Microservices.


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