---
id: ADR-ACC-REC-001
title: Reconciliation Is a Module of the Accounting Service
product_area: accounting
module: reconciliation
revision: 2
status: proposed
design_intent: confirmed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Keep Reconciliation within Accounting, sharing its API and database while
  using dedicated functions.
constrains:
  - SVC-ACC-REC-reconciliation
  - RESP-ACC
  - DOM-ACC-REC-002
  - WF-ACC-REC-001
origin: >-
  Ownership realignment decided by Andrew 2026-10-22 (services-accounting
  docs/architecture/realignment-2026-10-22/ownership.md: ledger, subledger,
  batches, posting, close and reconciliation belong to Accounting); architecture
  §9.1
alternatives:
  - option: Deploy an independent service and datastore.
    why_not: >-
      A separate datastore would require a replacement for the shared settlement
      transaction.
  - option: Place reconciliation inside Transactions.
    why_not: >-
      Distinct payout, investigation and approval responsibilities warrant their
      own module.
consequences:
  - Internal consumers invoke transaction-bound Reconciliation functions.
  - Books remains the configuration owner and supplies relevant period locks.
  - >-
    Any future service separation must preserve the required financial
    consistency.
supersedes: []
evidence:
  - >-
    services-accounting at f47cb263:
    docs/architecture/realignment-2026-10-22/ownership.md;
    docs/reconciliation/architecture.md §9.1;
    modules/reconciliation/aws/reconciliation.module.ts.
---
# Reconciliation Is a Module of the Accounting Service

## Context

Settlement recording and close evaluation need transaction boundaries within Accounting, and the recorded ownership decision places this work there.

## Decision

Keep Reconciliation within Accounting, sharing its API and database while using dedicated functions.

## Alternatives Considered

Deploy an independent service and datastore. A separate datastore would require a replacement for the shared settlement transaction.

Place reconciliation inside Transactions. Distinct payout, investigation and approval responsibilities warrant their own module.

## Consequences

Internal consumers invoke transaction-bound Reconciliation functions. Books remains the configuration owner and supplies relevant period locks. Any future service separation must preserve the required financial consistency.
