Accounting behind a named boundary

Every route that talks accounting imports from one boundary module with provider-neutral names, so a second accounting package becomes an adapter rather than a rewrite.

What it is

A module exporting pushInvoice, syncInvoicePaymentStatus, resolveInvoiceIdsForEntity, findOrgIdsByRealmId, ensureProjectForJob and ensureCustomer. The vendor-specific modules become provider-internal, and the rule is greppable: outside the providers directory, a direct vendor-module import is a boundary violation.

Also called: swap accounting package · Xero one day · AccountingPort

See it
Accounting behind a named boundary
Area
Integrations
Group
QuickBooks
System
Provider Independence
Solves
1 named problem
01Routes import the neutral names from the boundary module.
02The boundary re-exports the vendor implementations under those names.
03A future provider implements the same exports behind a registry binding.
A module map with a bold line around the providers directory and arrows from routes hitting only the boundary. Sample data — no customer information appears here.
How it works
  1. 1Routes import the neutral names from the boundary module.
  2. 2The boundary re-exports the vendor implementations under those names.
  3. 3A future provider implements the same exports behind a registry binding.
Why we built it

The module explains the choice to establish a boundary rather than refactor working code: 'QBO was already the best-contained integration... so this pass establishes the MODULE BOUNDARY rather than re-shaping working logic: every route that talks accounting imports from HERE, and the quickbooks* libs become provider-internal. Enforcement is greppable.' The same pattern is applied to the estimator and the platform-Stripe flow.

The problem
  • Vendor-specific imports scattered across routes would make a second provider a rewrite.
Sound familiar?
What you get
A second accounting package is an adapter, not a refactor.
Boundary violations are findable with a single search.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →