Skip to main content

Architecture patterns

Connect your systems without the tangle, and know when not to.ERP integration patterns

Patterns for connecting an ERP, a store, a bank and the rest. Each says when to use it, when not to, and how it breaks.

6 patterns. Each names its sources, with the date we read them.

Count the wires

Add systems and watch the links grow.

Hub1ERP2Store3Gateway4Bank5WhatsApp6CourierHub123456
  1. 1ERP
  2. 2Store
  3. 3Gateway
  4. 4Bank
  5. 5WhatsApp
  6. 6Courier
links through a hub6was 15
6 systems

Counted, not measured. Not every pair needs a link: the explorer lets you count yours.

Start from what is going wrong.

Integration · reviewed 14 Oct 2026

Every new tool means another link to build

Point-to-point vs a hub

Integration · reviewed 14 Oct 2026

We check an API every minute and mostly find nothing

Webhooks vs polling

Integration · reviewed 14 Oct 2026

The same payment was booked twice

Idempotent webhooks

Integration · reviewed 14 Oct 2026

The order saved, but nobody was told

Transactional outbox

Integration · reviewed 14 Oct 2026

A sale on one channel sold the last unit on another

Eventual consistency in stock

Integration · reviewed 14 Oct 2026

The books and the bank disagree at month‑end

Reconciliation as a job

Next: cutover strategies. Need one sooner?

Every pattern is built the same way.

The seven parts

  1. The problem

    What goes wrong, in plain words, before any solution.

  2. Use it when

    The conditions where it pays.

  3. Skip it when

    The size or case where it does not. Every pattern has one.

  4. Try it

    A model you can move, with sample data.

  5. What you give up

    The trade-offs, and how it fails, each with its source.

  6. In ERPNext, Frappe and Medusa

    The exact doctype, field, setting or file, at a named version. Medusa where a pattern uses it.

  7. Related

    The glossary term, the post and the guide chapter behind it.

How they are checked

Sources
The maker's own docs or code, named by version or date.
Failure modes
Documented behaviour. None is a MithTech client result.
Versions
Frappe and ERPNext at a named release or branch. Medusa at v2.21.2, with one history row at v1.20.11.
Reviewed
Each page shows the date it was last read against its sources.

Questions about the patterns