# ADR-010: Posting Engine Ownership for Accounting Entries

| Field | Value |
| --- | --- |
| Status | Accepted |
| Date | 2026-07-22 |
| Deciders | Platform Architecture |
| Supersedes | — |
| Superseded by | — |

## Context

Future Accounting must prevent inconsistent double-entry writes from multiple modules creating journal lines ad hoc.

## Decision

No service or UI may create `JournalEntry` / journal lines directly. All financial postings go through a dedicated Posting Engine owned by the Accounting module. Other modules emit posting intents/events; Accounting validates and posts.

## Consequences

### Positive

- Single source of truth for ledger integrity
- Auditable, compliance-friendly postings

### Negative

- Modules must wait for Accounting contracts before financial write-paths

## Alternatives Considered

1. Each module writes its own journal tables
2. Shared journal library embedded in every service

## Related Documents

- [Compliance Architecture](../compliance-architecture.md)
- [Module Registry](../../module-registry.md)
- [Project Principles](../../development/project-principles.md)
- [Phases / Accounting](../../phases/Accounting/README.md)
