Home/Writing/Build note

When not to use your own gateway

I built a gateway that every app in the firm goes through. Then I built one platform that deliberately goes around it, and I would defend that call in any review.

Saad Al-TamariFrom the work: Data Sync Platform · Mar–Aug 20262 min read
Data pipelinesArchitectureAgents

The Data Sync Platform pulls external systems (CRM, a knowledge base, meeting transcripts) into the shared 87-table schema. It is configured through a chat interface rather than code, and it runs as twelve agents, each with one job.

Fetchwith pagination
Mapfields to columns
Resolvenew · update · duplicate · conflict
Transformenums and foreign keys
Validateagainst live constraints
Writebulk, with audit trail
Reconcilecounts and anomalies
The seven core agents that run on every sync. Four more handle source-specific content, and one chat agent drives it all

Plugins are rows, not code

Adding a data source means creating a configuration row, not deploying a code file. The seven core agents handle any REST API given the right config, which is why a new integration can be set up from a chat window in minutes. The chat agent can discover an API, propose mappings, create the configuration, trigger a sync, explain an error and roll back.

The numbers that made the call

The gateway is built for app traffic: single operations, permissions, rate limits. It has no bulk upsert. Routed through it, one 150-record sync becomes 395+ HTTP round trips, runs straight into the rate limit, and makes the gateway a single point of failure for bulk traffic it was never designed for.

Through the gateway395+ calls
Direct bulk writeone write
One 150-record sync, two paths

Going around it without going dark

Bypassing the gateway did not mean bypassing accountability. The platform still writes audit entries and source-mapping rows, so the gateway’s view of the data stays complete. Anyone reading the logs sees the sync exactly as if it had gone through the front door.

Safety nets for bulk writes

Dry run

The full pipeline runs with the writer switched off and produces a preview report before anything is committed.

Rollback

Every sync is tagged. Inserts are deleted and updates reverted to their prior values from the audit log.

Two ways to make a bulk write reversible

Knowing when not to route through your own abstraction matters more than building the abstraction.

Read next · Build noteSkills that get better by losing
Contact

Let's build

Building something like this, or want me to write about your problem next? One email is enough to start.