E-commerce Integration Mistobox — client engagement via Arctic Leaf

Subscription logic scattered across five systems, moved into one auditable layer.

A subscription-commerce operation needed its lifecycle, imports, notifications and integrations to live somewhere deliberate rather than spread across whichever platform happened to own each step.

One auditable integration layer owning subscription lifecycle state, instead of five systems each holding part of it.

60+
Lambda functions in the platform
ReCharge, Shopify, Klaviyo, SES, S3
Integrated systems

Context

A subscription coffee business running on ReCharge and Shopify, with marketing, storage and internal data systems alongside them.

The problem

Subscription operations — create, update, cancel, skip, swap — plus imports, exports and notifications were distributed across platforms that each knew part of the story. Debugging a single customer's state meant checking several systems and inferring the rest.

Why it was difficult

Each individual integration is straightforward. The difficulty is that subscription lifecycle events arrive from multiple sources, out of order, sometimes twice, and the correct end state depends on all of them. Glue code written per-integration cannot express that, and it fails quietly.

Diagnosis

The work needed a dedicated integration layer that owned lifecycle state, rather than more point-to-point connections between platforms that each held a partial view.

What changed

  • Built an event-driven AWS serverless platform as the integration layer
  • Moved subscription lifecycle operations — create, update, cancel, skip, swap — into it
  • Brought imports, exports and notification flows under the same layer
  • Made the state transitions auditable rather than inferred from whichever platform was asked

Technical notes

  • AWS Lambda with SES for mail, S3 for storage, DynamoDB and MySQL via TypeORM for state.
  • Event-driven rather than request-driven, because the source systems emit events on their own schedule.
  • The value is not the function count — it is that lifecycle state has one owner instead of five partial ones.

Business impact

Debugging a single customer stopped being an exercise in checking several platforms and inferring the rest. There is one place to look, and one place to add new lifecycle behavior.

What this demonstrates

Integration architecture on a live commercial operation: designing the middleware layer that sits between a storefront and the systems actually running the business.

If order, inventory or subscription state keeps drifting between your storefront and the systems behind it, this is the layer that usually needs an owner.

Discuss an integration
All case studies