Home / Companies / Port / Blog / Post Details
Content Deep Dive

How we cut integration sync time by splitting the pipeline

Blog post from Port

Post Details
Company
Date Published
Author
Ivan Kalinovski
Word Count
2,622
Company Posts That Month
4
Language
English
Hacker News Points
-
Post removed?
No
Summary

Port redesigned its integration architecture by separating data extraction in Ocean from transformation, loading, reconciliation, and event handling in a new data-source processor (DSP), addressing the reliability and scaling constraints of its former single-process pipeline. Previously, expensive JQ transformations, catalog delays, memory failures, and API rate limits could stall or restart entire syncs, while changes to mappings required refetching third-party data. DSP stores raw batches in object storage, distributes processing through queue-driven workers, tracks run state in Postgres, and supports independent retries, dead-letter handling, observability, and replaying stored data when mappings change. Reconciliation occurs only after extraction ends and catalog writes finish, preventing deletions based on incomplete syncs, while apply-mapping workflows manage ordering with live webhook events. Built in Go after tests showed substantially faster JQ performance than TypeScript, the system was rolled out gradually behind feature flags; early customer integrations fell from roughly three to four hours to about 45 minutes, although integrations limited primarily by GitHub extraction can still take much longer.

Trends Found in this Post
Trend Post Mentions Total Month Mentions Posts Companies MoM
Platform Engineering 3 No monthly metrics for this publish month.
Developer Experience 2 No monthly metrics for this publish month.
MCP 1 No monthly metrics for this publish month.
Real-time 1 No monthly metrics for this publish month.
Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.