Skip to main content
The Hard Parts.dev
TD-06 Architecture TD Tech Decisions
Severity if wrong · high Freq · common

Shared Database vs Service-Owned Data

Usually a coupling and boundary-enforcement decision.

Severity if wrong
high
Frequency
common
Audiences
architects · backend teams · data/platform teams
Reversibility
hard
Confidence
high
At a glanceTD-06
Really about
Whether data ownership follows service boundaries or cuts across them.
Not actually about
Whether separate databases simply look cleaner on diagrams.
Why it feels hard
Shared databases are convenient early; separate ownership is cleaner later but costlier now.

The decision

Should multiple services share one database or own their data separately?

Usually a coupling and boundary-enforcement decision.

Default stance

Where to start before any evidence arrives.

Prefer service-owned data only when service boundaries are real enough to sustain it.

Options on the table

Two poles of the trade-off

Neither is the right answer by default. Each option's conditions, strengths, costs, hidden costs, and failure modes when misused are laid out in parallel so you can read across facets.

Option A

Shared Database

Best when

Conditions where this option is a natural fit.

  • system is still monolithic or near-monolithic
  • boundaries are evolving
  • operational simplicity matters more than ownership purity

Real-world fits

Concrete environments where this option has worked.

  • modular monoliths
  • tightly coupled internal systems
  • early-stage domains still discovering boundaries

Strengths

What this option does well on its own terms.

  • simple early development
  • easy joins and reporting
  • lower initial overhead

Costs

What you accept up front to get those strengths.

  • weak ownership boundaries
  • schema coupling
  • cross-team change risk

Hidden costs

Costs that surface later than expected — the main thing novices miss.

  • database becomes the real integration surface
  • changes become politically coupled

Failure modes when misused

How this option breaks when applied to the wrong context.

  • Creates service names over one shared data reality.

Option B

Service-Owned Data

Best when

Conditions where this option is a natural fit.

  • service boundaries are real
  • team autonomy matters
  • data ownership must be explicit

Real-world fits

Concrete environments where this option has worked.

  • mature service ecosystems
  • business domains with distinct teams and data stewardship
  • systems where ownership clarity matters more than ad hoc reporting convenience

Strengths

What this option does well on its own terms.

  • clear ownership
  • better autonomy
  • stronger encapsulation

Costs

What you accept up front to get those strengths.

  • duplication and sync complexity
  • reporting becomes harder
  • joins move into application/data pipelines

Hidden costs

Costs that surface later than expected — the main thing novices miss.

  • teams may underestimate data product/reporting consequences
  • consistency questions become architectural

Failure modes when misused

How this option breaks when applied to the wrong context.

  • Creates autonomy theater with reporting pain and unclear truth sources.

Cost, time, and reversibility

Who pays, how it ages, and what undoing it costs

Trade-offs are rarely zero-sum and rarely static. Someone pays, the payoff curve shifts with the horizon, and the decision has an undo cost.

Cost bearer

Option A · Shared Database

Who absorbs the cost

  • All teams touching the shared schema

Option B · Service-Owned Data

Who absorbs the cost

  • Service owners
  • Data/reporting teams
  • Platform teams supporting integration
Time horizon

Option A · Shared Database

Often wins early through simplicity.

Option B · Service-Owned Data

Wins later only when ownership clarity pays back more than integration/reporting cost.

Reversibility

What undoing costs

Hard

What should force a re-look

Trigger conditions that mean the answer may have changed.

  • Teams split
  • Change collisions increase
  • Reporting architecture matures

How to decide

The work you still have to do

The reference can frame the trade-off; only you can weight the factors against your context.

Questions to ask

Open these in the room. Answering them is most of the decision.

  • Where does truth need to live?
  • Who is allowed to change the shape and meaning of this data?
  • Are reporting and analytics first-class needs?
  • Would separate ownership reduce or merely relocate coupling?

Key factors

The variables that actually move the answer.

  • Boundary maturity
  • Reporting needs
  • Team autonomy
  • Consistency needs

Evidence needed

What to gather before committing. Not after.

  • Schema access map
  • Cross-team change history
  • Reporting/query needs inventory
  • Ownership model review

Signals from the ground

What's usually pushing the call, and what should

On the left, pressures to recognize and discount. On the right, signals that genuinely point toward one option or the other.

What's usually pushing the call

Pressures to recognize and discount.

Common bad reasons

Reasoning that feels convincing in the moment but doesn't hold up.

  • Shared database is always bad
  • Separate databases always mean better architecture

Anti-patterns

Shapes of reasoning to recognize and set aside.

  • Sharing tables across services while claiming ownership clarity
  • Splitting data ownership without a plan for reporting and reconciliation

What should push the call

Concrete signals that genuinely point to one pole.

For · Shared Database

Observations that genuinely point to Option A.

  • Tight integrated domain
  • Boundaries still moving

For · Service-Owned Data

Observations that genuinely point to Option B.

  • Clear domain ownership
  • Team autonomy matters materially

AI impact

How AI bends this decision

Where AI accelerates the call, where it introduces new distortions, and anything else worth knowing.

AI can help with

Where AI genuinely reduces the cost of making the call.

  • AI can trace cross-schema dependencies and ownership violations.

AI can make worse

Distortions AI introduces that didn't exist before.

  • AI can generate service shells that hide continued database coupling.

Relationships

Connected decisions

Nearby decisions this is sometimes confused with, adjacent decisions that are often entangled with this one, related failure modes, red flags, and playbooks to reach for.

Easy to confuse with

Nearby decisions and how this one differs.

  • That decision is about deployment separation. This one is about whether that separation is meaningful when the database remains shared.

  • That decision is about guarantees between services. This one is about whether services have separate data at all.

  • Adjacent concept A database-per-tenant choice

    That is about isolating customers. This decision is about isolating services from each other, which is a different separation axis.