Traditional CDC-to-lakehouse architectures often repeat the same infrastructure for every pipeline: a database log reader, an intermediate message broker, and an independent catalog writer. This works, but operational cost and pressure on source databases and catalogs increase as more pipelines are added.Ingest Engine separates these responsibilities into shared platform capabilities. Database capture, durable ingestion, stream processing, and Iceberg commit coordination can be managed independently while pipelines retain their own configuration, processing progress, and destination tables.
Ingest Engine’s shared CDC architecture manages connector sessions for multiple source databases. Each session reads its database transaction log, such as the MySQL binlog or PostgreSQL WAL, and maintains its own source position and schema history.Customers configure CDC sources without operating a separate Debezium deployment for every pipeline. When multiple pipelines need changes from the same database, the captured stream can be reused instead of opening another replication path to the source.Shared capture manages an independent connector session for each database while allowing downstream pipelines to reuse captured changes.This can provide:
Less CDC infrastructure to deploy, monitor, and upgrade
Fewer duplicate replication connections and replication slots
Lower capture overhead on source databases
Consistent handling of source positions and schema changes
Independent downstream pipelines built from the same captured changes
Ingest Engine’s durable ingestion log separates database capture from pipeline processing. The layer persists captured changes once so downstream pipelines can consume or replay them independently.For direct CDC-to-Iceberg workloads, this provides the buffering and replay boundary for which Kafka is often introduced. With the durable ingestion log, Kafka is optional when it would otherwise serve only as intermediate CDC plumbing.A direct architecture becomes possible:For direct CDC-to-Iceberg workloads, durable ingestion provides the buffering and replay boundary. Kafka remains an option when other systems also consume the stream.Kafka remains valuable when it provides capabilities outside the Ingest Engine, including:
An enterprise event stream shared with other applications
Topics consumed directly by systems outside the Ingest Engine
Organization-wide retention and governance requirements
Integration with existing Kafka producers and consumers
Ingest Engine allows teams to choose Kafka for these capabilities rather than requiring it for every CDC pipeline.
Iceberg uses optimistic concurrency when writers update table metadata. When many pipelines write frequently, overlapping catalog updates can produce conflicts, retries, rate limiting, and large numbers of small snapshots.Ingest Engine can coordinate prepared commits from multiple pipelines before publishing them to the catalog.Commit coordination serializes or combines compatible Ingest Engine commits to reduce catalog pressure. Iceberg concurrency still applies to external writers.For each destination table, it can:
Serialize overlapping Ingest Engine commits
Combine compatible commit fragments
Regulate catalog concurrency
Apply consistent retry and backpressure policies
Reduce the number of catalog updates and small snapshots
This reduces avoidable contention between Ingest Engine pipelines and limits catalog request pressure. It does not bypass Iceberg’s concurrency model, and writers outside the Ingest Engine can still introduce conflicts.
Shared ingestion and commit coordination make it practical to operate more CDC pipelines without repeating the surrounding infrastructure for every pipeline.Common uses include:
Capturing changes from multiple operational databases into Iceberg
Feeding history, current-state, and derived pipelines from one captured stream
Building database-to-Iceberg pipelines without a mandatory message broker
Replaying or restarting pipelines without reconnecting capture to the database
Scaling pipeline count while limiting source-database replication pressure
Coordinating frequent Iceberg writes to reduce catalog contention
The result is a simpler CDC-to-lakehouse architecture with fewer systems to operate and clearer boundaries between capture, replay, processing, and table publication.See Change data capture and Apache Iceberg for currently supported configuration and behavior.
Last modified on October 1, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"e6data Docs","description":"Product guides and references for e6data Query Engine, Ingest Engine, AgentFlow and the Platform they share.","colors":{"primary":"#6A14E0","light":"#CBA7F9","dark":"#3F00A5"},"logo":{"light":"https://mintcdn.com/e6data/tsrl5rViPFcU9eD9/logo/light.svg?fit=max\u0026auto=format\u0026n=tsrl5rViPFcU9eD9\u0026q=85\u0026s=dd3b9e0e6505087df256969937b1dee2","dark":"https://mintcdn.com/e6data/tsrl5rViPFcU9eD9/logo/dark.svg?fit=max\u0026auto=format\u0026n=tsrl5rViPFcU9eD9\u0026q=85\u0026s=5625d66b90d7c53fd37252f35c5f0d46","href":"/"},"favicon":"https://mintcdn.com/e6data/tsrl5rViPFcU9eD9/favicon.svg?fit=max\u0026auto=format\u0026n=tsrl5rViPFcU9eD9\u0026q=85\u0026s=bb349c1f01a6a11b9077b2a926879949","appearance":{"default":"light"},"background":{"color":{"light":"#FFFDFA","dark":"#141217"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Book a demo","href":"https://e6data.com/contact"}},"footer":{"socials":{"github":"https://github.com/e6data","linkedin":"https://www.linkedin.com/company/e6data","website":"https://e6data.com","x":"https://x.com/e6data"},"links":[{"header":"Products","items":[{"label":"Query Engine","href":"/query"},{"label":"Ingest Engine","href":"/ingest"},{"label":"AgentFlow","href":"/agentflow"}]},{"header":"Resources","items":[{"label":"Platform","href":"/platform"},{"label":"API reference","href":"/api-reference"},{"label":"Release notes","href":"/release-notes"}]},{"header":"Company","items":[{"label":"Book a demo","href":"https://e6data.com/contact"},{"label":"Contact support","href":"mailto:[email protected]"},{"label":"Security and trust","href":"/platform/trust"}]},{"header":"Legal","items":[{"label":"Privacy policy","href":"https://e6data.com/privacy"},{"label":"Cookie policy","href":"https://e6data.com/cookies"},{"label":"Terms","href":"https://e6data.com/terms"}]}]},"search":{"prompt":"Search all products. Try \"query from Python\""},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":false},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"e6data","hasAudioNarration":false,"actualSubdomain":"e6data","customDomains":["docs.e6data.com"],"gitSource":{"type":"github","owner":"pa1-m","repo":"e6data-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad9fe8d0d9ece1d40e8251d","collectionId":"c1de88b2-1c70-42c4-a116-984fbdfb2fe7","liveDeploymentHistoryId":"6ad9fe8d0d9ece1d40e8251d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad9fe8d0d9ece1d40e8251d","clientVersion":"0.0.3938","searchFilterCounts":[{"language":"default","tag":"Query Engine","count":471},{"language":"default","tag":"Reference","count":430},{"language":"default","tag":"SQL reference","count":374},{"language":"default","tag":"SQL functions","count":367},{"language":"default","tag":"Platform","count":120},{"language":"default","tag":"Ingest Engine","count":94},{"language":"default","tag":"Date and time functions","count":78},{"language":"default","tag":"String functions","count":63},{"language":"default","tag":"Math functions","count":53},{"language":"default","tag":"Aggregate functions","count":48}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--e6-bg:#FFFDFA;--e6-surface:#F5F4F0;--e6-card:#FFFFFF;--e6-ink:#1C1C1E;--e6-ink-2:#33322E;--e6-muted:#66615B;--e6-line:#D6D0C2;--e6-line-strong:#CCC6B8;--e6-violet:#6A14E0;--e6-violet-bright:#812AFE;--e6-violet-deep:#3F00A5;--e6-violet-edge:#5B21C4;--e6-lilac:#CBA7F9;--e6-lilac-pale:#E4D3FD;--e6-mint:#49F59F;--e6-mono:\"Roboto Mono\", ui-monospace, SFMono-Regular, Menlo, monospace}html.dark{--e6-bg:#141217;--e6-surface:#1C1A20;--e6-card:#201D25;--e6-ink:#F4F1EC;--e6-ink-2:#E2DED7;--e6-muted:#A7A199;--e6-line:#34303B;--e6-line-strong:#423D4A;--e6-violet:#B58CFA;--e6-violet-bright:#C7A5FF;--e6-violet-deep:#3F00A5;--e6-violet-edge:#5B21C4}.font-mono,code,kbd,pre{font-family:var(--e6-mono)!important}#page-title{letter-spacing:-.02em}.breadcrumb-list,.eyebrow,.sidebar-group-header,breadcrumb-list,eyebrow,sidebar-group-header{font-family:var(--e6-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.sidebar-group-header,sidebar-group-header{font-size:11.5px!important;letter-spacing:.08em;color:var(--e6-ink-2)}.nav-tag-pill,nav-tag-pill{font-family:var(--e6-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;border-radius:3px!important;background:var(--e6-surface)!important;border:1px solid var(--e6-line-strong)}.nav-tag-pill-text,nav-tag-pill-text{color:var(--e6-muted)!important}.card,card{border-color:var(--e6-line)!important;border-radius:8px!important;background:var(--e6-card)}.card:hover,card:hover{border-color:var(--e6-violet)!important}.callout,.code-block,callout,code-block{border-radius:6px!important}#topbar-cta-button a,#topbar-cta-button>*{background:var(--e6-violet-deep)!important;border-radius:6px!important}.e6-eyebrow{display:inline-block;align-self:flex-start;width:fit-content;font-family:var(--e6-mono);font-size:11px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;background:var(--e6-mint);color:#33322e;padding:3px 8px;border-radius:3px}.e6-eyebrow--quiet{background:var(--e6-surface);border:1px solid var(--e6-line-strong);color:var(--e6-muted)}.e6-home{color:var(--e6-ink);background:var(--e6-bg)}.e6-wrap{max-width:1120px;margin:0 auto;padding:0 24px}.e6-hero{background:var(--e6-surface);border-bottom:1px solid var(--e6-mint);padding:72px 0 56px}.e6-hero h1{margin:20px 0 0;font-size:clamp(36px,5.2vw,56px);line-height:1.05;letter-spacing:-.03em;font-weight:700;color:var(--e6-ink)}.e6-hero h1 .e6-accent{display:block;margin-top:6px;color:var(--e6-violet-bright)}.e6-hero-lede{margin:20px 0 0;max-width:680px;font-size:18px;line-height:1.55;color:var(--e6-muted)}.e6-hsearch{position:relative;margin-top:28px;max-width:820px;z-index:20}.e6-search{display:flex;align-items:center;gap:12px;height:56px;padding:0 8px 0 18px;background:var(--e6-bg);border:1px solid #8a857c;border-radius:6px;color:var(--e6-muted)}.e6-search:focus-within{border-color:var(--e6-violet);box-shadow:0 0 0 3px rgba(106,20,224,.15)}.e6-search-input{flex:1;min-width:0;height:100%;border:0;outline:0;background:0 0;font:inherit;font-size:17px;color:var(--e6-ink)}.e6-search-input::placeholder{color:var(--e6-muted)}.e6-search-input::-webkit-search-cancel-button{display:none}.e6-search-btn{display:inline-flex;align-items:center;height:40px;padding:0 20px;border:0;border-radius:5px;background:var(--e6-violet-deep);color:#fffdfa;font-weight:600;font-size:15px;cursor:pointer}.e6-search-btn:hover{background:#4a0cba}.e6-hsearch-results{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--e6-card);border:1px solid var(--e6-line);border-radius:8px;box-shadow:0 12px 32px rgba(28,28,30,.12);max-height:420px;overflow-y:auto}.e6-hsearch-results li{margin:0;padding:0}#pagination a[rel] svg,.e6-hsearch-results li::before{display:none}.e6-hsearch-item{display:grid;grid-template-columns:120px 1fr;column-gap:12px;row-gap:2px;width:100%;padding:10px 12px;border:0;border-radius:6px;background:0 0;text-align:left;color:var(--e6-ink)!important;text-decoration:none!important;border-bottom:0!important;cursor:pointer;font:inherit}.e6-hsearch-item.is-active{background:var(--e6-surface)}.e6-hsearch-all kbd,.e6-hsearch-meta{font-family:var(--e6-mono);font-size:11px}.e6-hsearch-meta{grid-row:span 2;letter-spacing:.04em;text-transform:uppercase;color:var(--e6-violet);padding-top:3px}.e6-hsearch-title{font-size:15px;font-weight:600}.e6-hsearch-desc{font-size:13px;line-height:1.45;color:var(--e6-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.e6-chip:hover,.e6-hsearch-all{color:var(--e6-violet)!important}.e6-hsearch-all{display:flex;align-items:center;justify-content:space-between;margin-top:4px;border-top:1px solid var(--e6-line)!important;border-radius:0 0 6px 6px;font-size:14px;font-weight:600}.e6-hsearch-all kbd{padding:2px 6px;border:1px solid var(--e6-line-strong);border-radius:4px;color:var(--e6-muted);font-weight:400}.e6-hsearch-empty{padding:10px 12px;font-size:14px;color:var(--e6-muted)}@media (max-width:640px){.e6-search-btn{display:none}.e6-hsearch-item{grid-template-columns:1fr}.e6-hsearch-meta{grid-row:auto;padding-top:0}}.e6-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px}.e6-chips-label,.e6-mode p{font-size:14px;color:var(--e6-muted)}.e6-chips-label{padding-right:4px}.e6-chip{display:inline-flex;align-items:center;height:40px;padding:0 16px;background:var(--e6-bg);border:1px solid var(--e6-line-strong);border-radius:22px;font-size:14px;font-weight:500;color:var(--e6-ink-2)!important;text-decoration:none!important;border-bottom-width:1px!important}.e6-chip:hover{border-color:var(--e6-violet)}.e6-section{padding:64px 0 0}.e6-mode h3,.e6-section h2{margin:0 0 24px;font-size:30px;letter-spacing:-.02em;font-weight:700;color:var(--e6-ink)}.e6-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}@media (max-width:1024px){.e6-modes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.e6-modes{grid-template-columns:1fr}}.e6-mode{display:flex;flex-direction:column;padding:24px 24px 8px;background:var(--e6-card);border:1px solid var(--e6-line);border-radius:8px}.e6-mode h3{margin:12px 0 8px;font-size:20px;letter-spacing:-.01em}.e6-mode p{margin:0 0 18px;line-height:1.55;flex-grow:1}.e6-mode-link{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 0;border-top:1px solid var(--e6-line);color:var(--e6-ink)!important;text-decoration:none!important;font-size:14.5px;font-weight:500;line-height:1.35;border-bottom:0!important}.e6-mode-link span{flex:1}.e6-mode-link svg{flex-shrink:0;color:var(--e6-violet)}.e6-mode-link--all,.e6-mode-link:hover{color:var(--e6-violet)!important}.e6-mode-link--all{font-weight:600;min-height:48px}.e6-planes{display:grid;grid-template-columns:2fr 1fr;gap:20px}@media (max-width:1024px){.e6-planes{grid-template-columns:1fr}}.e6-plane{display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--e6-surface);border:1px solid var(--e6-line);border-radius:8px}.e6-plane h3{margin:0;font-family:var(--e6-mono);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--e6-ink-2)}.e6-plane-grid{display:grid;gap:14px;grid-template-columns:repeat(var(--cols, 3),minmax(0,1fr))}@media (max-width:640px){.e6-plane-grid{grid-template-columns:1fr}}.e6-product{display:flex;flex-direction:column;gap:8px;padding:20px;min-height:150px;background:var(--e6-card);border:1px solid var(--e6-line);border-radius:6px;color:var(--e6-ink)!important;text-decoration:none!important;border-bottom-width:1px!important}.e6-platform-strip:hover,.e6-product:hover{border-color:var(--e6-violet)}.e6-product-name{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:18px;font-weight:600}.e6-product-desc{font-size:14px;line-height:1.5;color:var(--e6-muted);flex-grow:1}.e6-path{font-family:var(--e6-mono);font-size:12px;color:var(--e6-violet)}.e6-band a,.e6-platform-strip{display:flex;text-decoration:none!important}.e6-platform-strip{align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:20px;padding:20px 24px;background:var(--e6-card);border:1px solid var(--e6-mint);border-radius:8px;color:var(--e6-ink)!important}.e6-strip-name{font-size:18px;font-weight:600}.e6-platform-strip .e6-product-desc{flex:1;min-width:220px}.e6-platform-strip>*{align-self:center}.e6-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--e6-violet-deep);border-radius:8px;overflow:hidden}@media (max-width:1024px){.e6-band{grid-template-columns:1fr}}.e6-band a{flex-direction:column;gap:10px;padding:24px 20px;color:#fffdfa!important;border-right:1px solid var(--e6-violet-edge);border-bottom:0!important}@media (max-width:1024px){.e6-band a{border-right:0;border-top:1px solid var(--e6-violet-edge)}}.e6-band a:last-child,.e6-flow-step:last-child{border-right:0}.e6-band a:hover{background:#4a0cba}.e6-band-label{font-family:var(--e6-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--e6-lilac)}.e6-band-title{font-size:19px;font-weight:600;line-height:1.3}.e6-band-desc{font-size:14px;line-height:1.5;color:var(--e6-lilac-pale)}.e6-home-footer{margin-top:80px;padding:40px 32px;background:var(--e6-surface);border-top:1px solid var(--e6-line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:14px;color:var(--e6-muted)}.e6-home-footer span{flex-grow:1}.e6-home-footer a{color:var(--e6-ink-2)!important;text-decoration:none!important;border-bottom:0!important}.e6-home-footer a:hover{color:var(--e6-violet)!important}@media (max-width:640px){.e6-home-footer{padding:32px 16px}}.e6-lede{font-size:20px;line-height:1.45;color:var(--e6-ink);font-weight:600;letter-spacing:-.01em;margin:0 0 12px}.e6-availability{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 8px;font-size:14px;color:var(--e6-muted)}.e6-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:28px 0 8px;border:1px solid var(--e6-line);border-radius:8px;overflow:hidden;background:var(--e6-card)}@media (max-width:640px){.e6-flow{grid-template-columns:1fr}}.e6-flow-step{padding:20px;border-right:1px solid var(--e6-line)}@media (max-width:640px){.e6-flow-step{border-right:0;border-bottom:1px solid var(--e6-line)}.e6-flow-step:last-child{border-bottom:0}}.e6-flow-num{font-family:var(--e6-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--e6-violet)}.e6-flow-title{margin-top:8px;font-size:17px;font-weight:600;color:var(--e6-ink)}.e6-flow-desc{margin-top:6px;font-size:14px;line-height:1.5;color:var(--e6-muted)}.e6-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px}@media (max-width:640px){.e6-tasks{grid-template-columns:1fr}}.e6-task{display:flex;flex-direction:column;padding:20px 20px 6px;background:var(--e6-card);border:1px solid var(--e6-line);border-radius:8px}.e6-task-title{margin:10px 0 6px;font-size:18px;font-weight:700;line-height:1.3;color:var(--e6-ink)}.e6-task .e6-mode-link{min-height:44px;font-size:14px}.e6-addons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width:640px){.e6-addons{grid-template-columns:1fr}}.e6-addon{display:flex;flex-direction:column;gap:8px;padding:18px 20px;background:var(--e6-surface);border:1px solid var(--e6-line);border-radius:8px;color:var(--e6-ink)!important;text-decoration:none!important;border-bottom-width:1px!important}#pagination a[rel]:hover,.e6-addon:hover{border-color:var(--e6-violet)}.e6-addon-label{font-family:var(--e6-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--e6-muted)}.e6-addon-title{font-size:16px;font-weight:600;line-height:1.35}.e6-meta,.e6-owner{display:flex;flex-wrap:wrap;font-size:13px;color:var(--e6-muted)}.e6-owner{gap:8px 24px;margin-top:40px;padding-top:16px;border-top:1px solid var(--e6-line)}.e6-meta{align-items:center;gap:8px 16px;margin:0 0 20px}.e6-outcome{margin:8px 0 28px;padding:16px 20px;border-left:3px solid var(--e6-mint);background:var(--e6-surface);border-radius:0 6px 6px 0}.e6-outcome-label{font-family:var(--e6-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--e6-ink-2)}.e6-outcome-body{margin-top:6px;color:var(--e6-ink)}.e6-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media (max-width:640px){.e6-related{grid-template-columns:1fr}}.e6-soon{margin:8px 0 24px;padding:28px;background:var(--e6-surface);border:1px dashed var(--e6-line-strong);border-radius:8px}.e6-soon-body{margin-top:12px;color:var(--e6-muted)}#footer.advanced-footer{position:relative;z-index:15;background:var(--e6-surface);border-top:1px solid var(--e6-line)!important}#footer.advanced-footer>div{max-width:none!important;padding:40px 32px!important;gap:24px!important}@media (max-width:640px){#footer.advanced-footer>div{padding:32px 16px!important}}#footer:not(.advanced-footer){margin-top:48px;border-top-color:var(--e6-line)!important;padding-bottom:64px!important}#pagination{display:grid!important;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}#pagination a[rel]{position:relative;display:flex!important;flex-direction:column;justify-content:center;gap:4px;min-width:0;min-height:72px;margin:0!important;padding:14px 18px;border:1px solid var(--e6-line);border-radius:8px;background:var(--e6-card);text-decoration:none!important}#pagination a[rel]::before{font-family:var(--e6-mono);font-size:11px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--e6-muted)}#pagination a[rel=prev]{grid-column:1;align-items:flex-start}#pagination a[rel=prev]::before{content:\"← Previous\"}#pagination a[rel=next]{grid-column:2;align-items:flex-end;text-align:right}#pagination a[rel=next]::before{content:\"Next →\"}#pagination [data-component-part=pagination-title]{max-width:100%;color:var(--e6-ink);font-size:15px}@media (max-width:640px){#pagination{grid-template-columns:1fr}#pagination a[rel=next]{grid-column:1}}html[data-current-path=\"/\"] #search-bar-entry,html[data-current-path=\"/\"] #search-bar-entry-mobile{display:none!important}.e6-addon:focus-visible,.e6-band a:focus-visible,.e6-chip:focus-visible,.e6-home-footer a:focus-visible,.e6-hsearch-item:focus-visible,.e6-mode-link:focus-visible,.e6-platform-strip:focus-visible,.e6-product:focus-visible,.e6-search-btn:focus-visible{outline:2px solid var(--e6-violet);outline-offset:2px;border-radius:6px}@media (max-width:640px){.e6-hero{padding:36px 0 40px}.e6-hero h1{margin-top:14px}.e6-section{padding-top:48px}.e6-section h2{font-size:24px;margin-bottom:18px}.e6-plane{padding:0;background:0 0;border:0}.e6-product{min-height:0}.e6-platform-strip{flex-direction:column;align-items:flex-start;gap:8px}.e6-platform-strip>*{align-self:flex-start}.e6-platform-strip .e6-product-desc{min-width:0}.e6-task{padding:16px 16px 4px}.e6-flow-step{padding:16px}#footer.advanced-footer>div>div:first-child{display:grid!important;grid-template-columns:1fr;gap:28px}#footer.advanced-footer>div>div:first-child>div:last-child{display:grid!important;grid-template-columns:1fr 1fr;gap:24px 16px}.e6-home-footer{gap:10px 20px}.e6-home-footer span{flex-basis:100%}}.e6-status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:18px;white-space:nowrap}.e6-status--yes{background:#ddf8ea;color:#0b6b3a}.e6-status--partial{background:#fff1cc;color:#7a5300}.e6-status--no{background:var(--e6-surface);color:var(--e6-muted);border:1px solid var(--e6-line)}:root.dark .e6-status--yes,html.dark .e6-status--yes{background:rgba(73,245,159,.14);color:#7cf2b6}:root.dark .e6-status--partial,html.dark .e6-status--partial{background:rgba(255,196,0,.14);color:#ffd66b}.e6-status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:16px 0 8px;font-size:13px;color:var(--e6-muted)}.e6-status-legend .e6-status+*{margin-right:8px}"}],"page":{"pagePath":"ingest/concepts/shared-data-services","slug":"/ingest/concepts/shared-data-services","pageMetadata":{"title":"Shared data services","description":null,"href":"/ingest/concepts/shared-data-services"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Traditional CDC-to-lakehouse architectures often repeat the same infrastructure for every pipeline: a database log reader, an intermediate message broker, and an independent catalog writer. This works, but operational cost and pressure on source databases and catalogs increase as more pipelines are added.`}),`\n`,_jsx(_components.p,{children:`Ingest Engine separates these responsibilities into shared platform capabilities. Database capture, durable ingestion, stream processing, and Iceberg commit coordination can be managed independently while pipelines retain their own configuration, processing progress, and destination tables.`}),`\n`,_jsx(Heading,{level:`2`,id:`shared-cdc-capture`,children:`Shared CDC capture`}),`\n`,_jsx(_components.p,{children:`Ingest Engine’s shared CDC architecture manages connector sessions for multiple source databases. Each session reads its database transaction log, such as the MySQL binlog or PostgreSQL WAL, and maintains its own source position and schema history.`}),`\n`,_jsx(_components.p,{children:`Customers configure CDC sources without operating a separate Debezium deployment for every pipeline. When multiple pipelines need changes from the same database, the captured stream can be reused instead of opening another replication path to the source.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=6dc8e6b79d7370cfe7aa5bb2217836fe`,alt:`Shared CDC capture reuses database changes across independent pipelines`,\"data-og-width\":`1000`,width:`1000`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/migrated/a6b24a2ca37e.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=280\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=442d14984b57c47bf2c8c3b73510d20e 280w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=560\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=88ce49602122ae700706c46045abb4be 560w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=840\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=f0faaba7e14c455f16d54590278b9fef 840w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=bfb9ac6e3ca2511200949da3c7e3597a 1100w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=2f3574aba6a535c308162548e303b219 1650w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/a6b24a2ca37e.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=a04ef5ddb4103eec16126a232d5faa66 2500w`}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`Shared capture manages an independent connector session for each database while allowing downstream pipelines to reuse captured changes.`})}),`\n`,_jsx(_components.p,{children:`This can provide:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Less CDC infrastructure to deploy, monitor, and upgrade`}),`\n`,_jsx(_components.li,{children:`Fewer duplicate replication connections and replication slots`}),`\n`,_jsx(_components.li,{children:`Lower capture overhead on source databases`}),`\n`,_jsx(_components.li,{children:`Consistent handling of source positions and schema changes`}),`\n`,_jsx(_components.li,{children:`Independent downstream pipelines built from the same captured changes`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`durable-ingestion-without-mandatory-kafka`,children:`Durable ingestion without mandatory Kafka`}),`\n`,_jsx(_components.p,{children:`Ingest Engine’s durable ingestion log separates database capture from pipeline processing. The layer persists captured changes once so downstream pipelines can consume or replay them independently.`}),`\n`,_jsx(_components.p,{children:`For direct CDC-to-Iceberg workloads, this provides the buffering and replay boundary for which Kafka is often introduced. With the durable ingestion log, Kafka is optional when it would otherwise serve only as intermediate CDC plumbing.`}),`\n`,_jsx(_components.p,{children:`A direct architecture becomes possible:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=f6be249a29396045f713dc0ef3bdcf01`,alt:`Durable ingestion makes Kafka optional for direct CDC-to-Iceberg pipelines`,\"data-og-width\":`1000`,width:`1000`,\"data-og-height\":`520`,height:`520`,\"data-path\":`images/migrated/1de41cb65383.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=280\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=23708e9a9a6e9f9f9f8a6c688eb9593a 280w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=560\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=6b2ad236e4d923508acf34eaac964116 560w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=840\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=118fc8fe58e49c275062bcd55e6eaa47 840w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=80c2eca508fea0280708ed1dfea96466 1100w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=e0e4550621ff3099050b32c589af6d64 1650w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1de41cb65383.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=7520ed4cf30cf96aefeb28a0bfcfd8cb 2500w`}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`For direct CDC-to-Iceberg workloads, durable ingestion provides the buffering and replay boundary. Kafka remains an option when other systems also consume the stream.`})}),`\n`,_jsx(_components.p,{children:`Kafka remains valuable when it provides capabilities outside the Ingest Engine, including:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`An enterprise event stream shared with other applications`}),`\n`,_jsx(_components.li,{children:`Topics consumed directly by systems outside the Ingest Engine`}),`\n`,_jsx(_components.li,{children:`Organization-wide retention and governance requirements`}),`\n`,_jsx(_components.li,{children:`Integration with existing Kafka producers and consumers`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Ingest Engine allows teams to choose Kafka for these capabilities rather than requiring it for every CDC pipeline.`}),`\n`,_jsx(Heading,{level:`2`,id:`coordinated-iceberg-commits`,children:`Coordinated Iceberg commits`}),`\n`,_jsx(_components.p,{children:`Iceberg uses optimistic concurrency when writers update table metadata. When many pipelines write frequently, overlapping catalog updates can produce conflicts, retries, rate limiting, and large numbers of small snapshots.`}),`\n`,_jsx(_components.p,{children:`Ingest Engine can coordinate prepared commits from multiple pipelines before publishing them to the catalog.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=9c39ec26b0fcec977c30b467f320bd26`,alt:`Coordinated Iceberg commits reduce overlapping catalog updates`,\"data-og-width\":`1000`,width:`1000`,\"data-og-height\":`430`,height:`430`,\"data-path\":`images/migrated/1a8199517b6c.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=280\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=110ede334d74941d559c6d1c1049b479 280w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=560\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=2da87e342f6ae2747b50447c914249da 560w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=840\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=b6f64b713ec5b327ac0a7c96249dcb25 840w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=2bb4915220a56b835abec0ad90d2dd7c 1100w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=a260561c7c91c8751a80e06d714f249f 1650w, https://mintcdn.com/e6data/Gek0pr7x0Tsw98Tz/images/migrated/1a8199517b6c.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=Gek0pr7x0Tsw98Tz\u0026q=85\u0026s=ec41d4da080e216708fc114b82bbc984 2500w`}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`Commit coordination serializes or combines compatible Ingest Engine commits to reduce catalog pressure. Iceberg concurrency still applies to external writers.`})}),`\n`,_jsx(_components.p,{children:`For each destination table, it can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Serialize overlapping Ingest Engine commits`}),`\n`,_jsx(_components.li,{children:`Combine compatible commit fragments`}),`\n`,_jsx(_components.li,{children:`Regulate catalog concurrency`}),`\n`,_jsx(_components.li,{children:`Apply consistent retry and backpressure policies`}),`\n`,_jsx(_components.li,{children:`Reduce the number of catalog updates and small snapshots`}),`\n`]}),`\n`,_jsx(_components.p,{children:`This reduces avoidable contention between Ingest Engine pipelines and limits catalog request pressure. It does not bypass Iceberg’s concurrency model, and writers outside the Ingest Engine can still introduce conflicts.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-this-architecture-unlocks`,children:`What this architecture unlocks`}),`\n`,_jsx(_components.p,{children:`Shared ingestion and commit coordination make it practical to operate more CDC pipelines without repeating the surrounding infrastructure for every pipeline.`}),`\n`,_jsx(_components.p,{children:`Common uses include:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Capturing changes from multiple operational databases into Iceberg`}),`\n`,_jsx(_components.li,{children:`Feeding history, current-state, and derived pipelines from one captured stream`}),`\n`,_jsx(_components.li,{children:`Building database-to-Iceberg pipelines without a mandatory message broker`}),`\n`,_jsx(_components.li,{children:`Replaying or restarting pipelines without reconnecting capture to the database`}),`\n`,_jsx(_components.li,{children:`Scaling pipeline count while limiting source-database replication pressure`}),`\n`,_jsx(_components.li,{children:`Coordinating frequent Iceberg writes to reduce catalog contention`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The result is a simpler CDC-to-lakehouse architecture with fewer systems to operate and clearer boundaries between capture, replay, processing, and table publication.`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/ingest/connectors/databases/cdc`,children:`Change data capture`}),` and `,_jsx(_components.a,{href:`/ingest/connectors/lakehouse/iceberg`,children:`Apache Iceberg`}),` for currently supported configuration and behavior.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Shared data services","description":null,"href":"/ingest/concepts/shared-data-services"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Shared CDC capture","slug":"shared-cdc-capture","depth":2,"children":[]},{"title":"Durable ingestion without mandatory Kafka","slug":"durable-ingestion-without-mandatory-kafka","depth":2,"children":[]},{"title":"Coordinated Iceberg commits","slug":"coordinated-iceberg-commits","depth":2,"children":[]},{"title":"What this architecture unlocks","slug":"what-this-architecture-unlocks","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"e6data","siteName":"e6data Docs","title":"Shared data services - e6data Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T21:03:07.291Z","gitLastModified":"2026-10-01T11:08:09.000Z","originalFileLocation":"ingest/concepts/shared-data-services.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"e6data Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Shared data services - e6data Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"e6data Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.e6data.com/ingest/concepts/shared-data-services\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://e6data.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Shared+data+services\u0026amp;theme=e0ed275d6670d22ed06b8594\u0026amp;signature=5c1c72aa9b76053a22af062a6e91e1ee9c86ea11f65fb1f20f289a69d0a6acca\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Shared data services - e6data Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://e6data.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=Shared+data+services\u0026amp;theme=e0ed275d6670d22ed06b8594\u0026amp;signature=5c1c72aa9b76053a22af062a6e91e1ee9c86ea11f65fb1f20f289a69d0a6acca\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/e6data/3UZG_-olqObYHcj7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"e6data Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6A14E0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.e6data.com/ingest/concepts/shared-data-services\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ingest/concepts/shared-data-services.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.e6data.com/#organization\",\"name\":\"e6data Docs\",\"url\":\"https://docs.e6data.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/e6data/tsrl5rViPFcU9eD9/logo/light.svg?fit=max\u0026auto=format\u0026n=tsrl5rViPFcU9eD9\u0026q=85\u0026s=dd3b9e0e6505087df256969937b1dee2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.e6data.com#website\",\"name\":\"e6data Docs\",\"url\":\"https://docs.e6data.com\",\"publisher\":{\"@id\":\"https://docs.e6data.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.e6data.com/ingest/concepts/shared-data-services#webpage\",\"url\":\"https://docs.e6data.com/ingest/concepts/shared-data-services\",\"name\":\"Shared data services\",\"dateModified\":\"2026-10-01T11:08:09.000Z\",\"isPartOf\":{\"@id\":\"https://docs.e6data.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.e6data.com/ingest/concepts/shared-data-services#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.e6data.com/ingest/concepts/shared-data-services#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Concepts\",\"item\":\"https://docs.e6data.com/ingest/concepts/core-concepts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Shared data services\",\"item\":\"https://docs.e6data.com/ingest/concepts/shared-data-services\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.e6data.com/ingest/concepts/shared-data-services#article\",\"headline\":\"Shared data services\",\"name\":\"Shared data services\",\"url\":\"https://docs.e6data.com/ingest/concepts/shared-data-services\",\"mainEntityOfPage\":{\"@id\":\"https://docs.e6data.com/ingest/concepts/shared-data-services#webpage\"},\"dateModified\":\"2026-10-01T11:08:09.000Z\",\"publisher\":{\"@id\":\"https://docs.e6data.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.e6data.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"e6data Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"e6data Docs","nav":{"global":null,"tabs":[{"tab":"Get started","icon":"compass","pages":[{"title":"Get started","href":""}]},{"tab":"Query Engine","icon":"search-code","pages":[{"title":"Query Engine","href":"/query"}]},{"tab":"Ingest Engine","icon":"arrow-down-to-line","groups":[{"group":"Ingest Engine","pages":[{"title":"Ingest Engine","sidebarTitle":"Overview","mode":"wide","href":"/ingest"},{"title":"Introduction to Ingest Engine","href":"/ingest/introduction"}]},{"group":"Get started","pages":[{"title":"Choose your pipeline","href":"/ingest/get-started/choose-your-pipeline"},{"title":"Build your first pipeline","href":"/ingest/get-started/first-pipeline"},{"group":"Examples","pages":[{"title":"Examples","sidebarTitle":"Overview","href":"/ingest/examples/index"},{"title":"Kafka to Iceberg","href":"/ingest/examples/kafka-to-iceberg"},{"title":"PostgreSQL CDC to Iceberg","href":"/ingest/examples/postgres-cdc-to-iceberg"},{"title":"HTTP to Iceberg","href":"/ingest/examples/http-to-iceberg"},{"title":"Filesystem to Iceberg","href":"/ingest/examples/filesystem-to-iceberg"}]}]},{"group":"Connectors","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/ingest/connectors/index"},{"group":"Message queues","pages":[{"title":"Message queues","sidebarTitle":"Overview","href":"/ingest/connectors/message-queues/index"},{"title":"Kafka","href":"/ingest/connectors/message-queues/kafka"},{"title":"Confluent","href":"/ingest/connectors/message-queues/confluent"},{"title":"Kinesis","href":"/ingest/connectors/message-queues/kinesis"}]},{"group":"Databases","pages":[{"title":"Databases","sidebarTitle":"Overview","href":"/ingest/connectors/databases/index"},{"title":"Change data capture","href":"/ingest/connectors/databases/cdc"}]},{"group":"Lakehouse","pages":[{"title":"Lakehouse","sidebarTitle":"Overview","href":"/ingest/connectors/lakehouse/index"},{"title":"Iceberg","href":"/ingest/connectors/lakehouse/iceberg"},{"title":"Delta Lake","href":"/ingest/connectors/lakehouse/delta"}]},{"group":"Storage","pages":[{"title":"Storage","sidebarTitle":"Overview","href":"/ingest/connectors/storage/index"},{"title":"Filesystem","href":"/ingest/connectors/storage/filesystem"}]},{"title":"HTTP source","href":"/ingest/connectors/http-source"}]},{"group":"Streaming SQL","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/ingest/sql/index"},{"title":"Quick start","href":"/ingest/sql/quick-start"},{"group":"Streaming","pages":[{"title":"Streaming","sidebarTitle":"Overview","href":"/ingest/sql/streaming/index"},{"title":"Windows","href":"/ingest/sql/streaming/windows"},{"title":"Joins","href":"/ingest/sql/streaming/joins"},{"title":"Stateful queries","href":"/ingest/sql/streaming/stateful"}]}]},{"group":"Operate","pages":[{"title":"Configuration","href":"/ingest/operations/configuration"},{"title":"Observability","href":"/ingest/operations/observability"},{"title":"Metrics","href":"/ingest/operations/metrics"}]},{"group":"Reference","pages":[{"group":"SQL reference","pages":[{"title":"SQL reference","sidebarTitle":"Overview","href":"/ingest/sql/reference/index"},{"title":"DDL","href":"/ingest/sql/reference/ddl"},{"title":"Basic queries","href":"/ingest/sql/reference/basic-queries"},{"title":"Data types","href":"/ingest/sql/reference/data-types"}]},{"group":"Scalar functions","pages":[{"title":"Scalar functions","sidebarTitle":"Overview","href":"/ingest/sql/functions/index"},{"title":"Text","href":"/ingest/sql/functions/text"},{"title":"Math","href":"/ingest/sql/functions/math"},{"title":"Date and time","href":"/ingest/sql/functions/datetime"},{"title":"JSON","href":"/ingest/sql/functions/json"},{"title":"Array","href":"/ingest/sql/functions/array"},{"title":"Struct","href":"/ingest/sql/functions/struct"},{"title":"Regular expressions","href":"/ingest/sql/functions/regex"},{"title":"Conditional","href":"/ingest/sql/functions/conditional"},{"title":"Hashing","href":"/ingest/sql/functions/hashing"},{"title":"Binary","href":"/ingest/sql/functions/binary"},{"title":"Other","href":"/ingest/sql/functions/other"}]},{"group":"Aggregate and window functions","pages":[{"title":"Aggregate and window functions","sidebarTitle":"Overview","href":"/ingest/sql/aggregate-window/index"},{"title":"Aggregates","href":"/ingest/sql/aggregate-window/aggregates"},{"title":"Window","href":"/ingest/sql/aggregate-window/window"}]},{"title":"Data formats","href":"/ingest/reference/data-formats"},{"title":"Schema","href":"/ingest/reference/schema"},{"title":"HTTP API","href":"/ingest/reference/http-api"}]},{"group":"Concepts","pages":[{"title":"Core concepts","href":"/ingest/concepts/core-concepts"},{"title":"Architecture overview","href":"/ingest/concepts/architecture"},{"title":"Controller","href":"/ingest/concepts/controller"},{"title":"Workers","href":"/ingest/concepts/workers"},{"title":"Pipeline replica sets","href":"/ingest/concepts/pipeline-replica-sets"},{"title":"Checkpointing","href":"/ingest/concepts/checkpointing"},{"title":"Watermarks","description":"Ingest Engine processes time-based queries using event time: the timestamp carried by a record, rather than the wall-clock time at which the engine happens to process it.","href":"/ingest/concepts/watermarks"},{"title":"Shared data services","href":"/ingest/concepts/shared-data-services"}]}]},{"tab":"AgentFlow","icon":"workflow","pages":[{"title":"AgentFlow","href":"/agentflow"}]},{"tab":"Platform","icon":"layers","pages":[{"title":"Platform","href":"/platform"}]},{"tab":"API reference","icon":"square-terminal","pages":[{"title":"API reference","href":"/api-reference"}]}]},"title":"Shared data services - e6data Docs","buildId":"dpl_ZKoZJZWLfCGm5ruRXZxKky7SA7U4","deploymentId":"dpl_ZKoZJZWLfCGm5ruRXZxKky7SA7U4","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-YNAtquhP.js","PlusIcon-BGwWTvXM.js","lightbox-handle-r17bVUz3.js"]}