# Distributed Monolith

Record: `arch:distributed-monolith`
Kind: anti-pattern
Layer: [Enforcement Core](https://banes-lab.com/records/layer/enforcement-core.md)
Severity: discouraged
Scope: modularity, contract_compatibility, state_transaction
Canonical: https://banes-lab.com/ontology#arch-distributed-monolith

## Repair

- Refactored by: own_data_per_service, define_service_contracts, introduce_events, add_outbox, split_bounded_context, enable_independent_deployment
- Detected by: [shared_database](https://banes-lab.com/records/lex/shared-database.md), cross_service_transactions, lockstep_deployments, deep_sync_call_chain, shared_business_logic_package, consumer_breakage_on_service_change
- Violated by: Split deployment units without splitting data ownership, transaction boundaries, [failure isolation](https://banes-lab.com/records/lex/failure-isolation.md), [contracts](https://banes-lab.com/records/lex/contracts.md), or autonomous release capability.

## referenced-by

- [Microservices](https://banes-lab.com/records/arch/microservices.md)
