Middleware & Integration Lab

Make your systems
talk to each other

We build and run the middleware layer between any two systems that need to exchange data — business software, marketplaces, data warehouses, cloud, email, social channels.

POC first, production after
Handover written into the contract
Open-source nodes on npm
The problem

You have enough software. The layer between them is missing.

Three problems, in the words customers actually use when they call us.

Your systems don't talk to each other

A 20-to-200-person company usually already has plenty: sales software, a CRM, accounting, inventory, marketplaces, plus email, a data warehouse, cloud infrastructure and a few comms channels. Each does its own job well. None of them owns the data flowing correctly between them. So people become the middleware: copy by hand, export to Excel, re-enter, and get it wrong.

It syncs, and the data is still wrong

Calling the API is the easy part. The hard part only shows up weeks into production: the same event arrives twice and creates a duplicate; a webhook drops one transaction and nobody notices until month-end reconciliation; an invoice is edited or voided but the target system still holds the old state.

Nobody owns the layer in between

Your POS vendor owns the POS. Your CRM vendor owns the CRM. The freelancer wrote a script and moved on. When the data is wrong there is nobody to call, and no log to tell you where it broke. That gap is where hecigo sits: we own the middle layer, with a name on it, a log, and someone on call.

How we work

Three things in every integration we build

Calling an API is 20% of the work. The other 80% is what follows — the part that only shows up weeks into production, and the part that decides whether the integration lives or dies.

eventeventunique keysrc:type:id:v1 row

Right data, no duplicates

Two different kinds of duplication, handled separately. Duplicate events use an idempotency key with a database-level constraint. Duplicate customers use a matching ladder that you define — which tiers merge automatically, and which go to a human.

  • Unique index on the dedup key, not a check-then-write race
  • Matching ladder: external id, phone, email, tax code
  • Per-field write policy — a colleague closing a sale never reassigns the account owner
event log1s2s4sbackoff + jittertargetDLQ

Nothing lost, self-healing

Events are written to the log before anything is pushed, so an outage at the target never turns into data lost at the source. Scheduled reconciliation actively counts back to catch whatever the webhooks dropped.

  • Log first, return 200 immediately, deliver as a separate step
  • Exponential backoff with jitter; exhausted attempts land in a replayable DLQ
  • Two-tier reconciliation: hourly counts, nightly per-record comparison
id = kv:invoice:HD00042sent04:11:03received04:11:03delivered04:11:15attempts = 3

Traceable, and yours to take

Give it an invoice number and it returns when the source sent it, when the middleware received it, when the target accepted it, where it failed, and how many times it retried. Everything we build is handed over complete enough for another team to take over.

  • A lookup screen your ops people can use, not just our developers
  • Source code, database schema, mapping data, runbook — you own all of it
  • A dedicated instance per client, never shared with anyone else
Services

Every step is a gate

You pay for the step you are on, see the result, then decide whether to continue. This is not about trust: nobody can quote accurately before seeing real data — not even the most experienced team. API docs always diverge from actual behaviour, and always at the expensive parts.

INTEGRATION DISCOVERY01

Integration discovery

1–2 weeks

A written technical assessment, complete enough for anyone — including another vendor — to quote accurately.

  • Current and target data-flow maps
  • Draft field mapping: source → transform → target
  • API capability on both ends: webhooks, rate limits, pagination, latency
  • POC outline with acceptance criteria
Gate

You read the assessment, then decide whether to run a POC. The assessment is yours — take it to another vendor if you want.

PROOF OF INTEGRATION02

POC on real data

1 flow · 20–50 transactions

Measurable proof, against acceptance criteria agreed before a line of code is written.

  • Manual reconciliation of every transaction, source against target
  • Replay 5 events, count target records — no duplicates allowed
  • Latency reported at both P50 and P95, measured from the logs
  • Deliberately cut the target off, verify the backlog drains fully on recovery
Gate

Pass every criterion and we scope production. Fail and we stop — you keep the assessment and the POC source code.

PRODUCTION BUILD03

Production build

4–8 weeks per system pair

Middleware running for real, with monitoring and documentation.

  • Full edge cases: edits, voids, partial returns, merges, splits
  • Deduplication, retries, dead-letter queue, scheduled reconciliation
  • Alerts on queue depth, error rate, and latency past threshold
  • Parallel run alongside the old process before anything is switched off
Gate

An operations runbook and a handover session, before anything moves to managed ops.

MANAGED OPERATIONS04

Managed operations

monthly · ongoing

Someone is accountable when the middle layer breaks. Projects end. Operations do not.

  • Monitoring, alerting, and incident response within committed hours
  • Scheduled reconciliation with a discrepancy report
  • Security updates, version patching, a monthly allowance for small changes
  • Monthly report: volume, success rate, P95, incidents and how they were handled
Out of scope

New business flows, connecting a third system, or rewrites when a third party ships a breaking API change.

Handover & Enablement

Handover

You can leave hecigo without losing anything. It sounds backwards next to managed operations, but selling the exit makes the entrance far easier — what clients fear most is being locked into a small vendor.

  • Custom source code, ownership written into the contract
  • Database schema and all mapping data
  • Deployment config: compose files, env templates with secrets redacted, build process
  • Runbook, plus a handover session for the incoming team

Triggered at any time, or bought on its own if you want to run it yourself from day one.

Step one is not free. A free assessment has three consequences: the client is not serious, we get no access to real data, and the proposal is forced to guess.

Start with discovery
Blog

Notes from the lab

Mechanics, failure modes, and what we learned building this for real — including where we got it wrong. Written in Vietnamese.

About

An integration lab, not a contractor

hecigo does exactly one thing: the layer in between. A 20-to-200-person company usually has enough software already, and each piece does its own job well. What is missing is whatever makes them talk to each other — and no vendor takes responsibility for that part.

We work in gated steps: a paid discovery, then a POC on your real data, then production. Every step has an exit. You pay a small amount, watch it run, and only then decide whether to continue.

We have shipped production integrations with Base CRM, Lark Suite and Odoo — some under contract, some while running those systems from inside the business. Plus two open-source nodes live on npm with outside users, and integration infrastructure we have operated ourselves for months.

Even so, every pair of systems fails in its own way, and most of it lives in what the API docs never mention. Nobody can quote accurately before looking at real data — not even the most experienced team. That is why discovery and a POC exist: so you don't have to take our word for it.

We never ask you to replace software that already works
A small POC first, with acceptance criteria written up front. Fails it, we stop
Handover complete enough for another team to take over — written into the contract

Research. Prototype. Deploy.

Not a slogan. Three real steps: discovery to understand the data, a POC to prove the approach holds, then production. Each one is a gate you are free to stop at.

Node.jsPostgreSQLDockern8nGrafana
Contact

Tell us your problem

Which two systems are out of sync, and where exactly? A specific answer is far more useful than a capability deck. We reply within one business day.

Contact details

Address

CirCO Dien Bien Phu - 222 Dien Bien Phu, Vo Thi Sau Ward, Ho Chi Minh, Vietnam

Send a message