The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.
You can use Xata in two major ways:
For staging and development use cases, where you use Xata to enhance other Postgres DBaaS offerings by adding features like instant database branching and data anonymization.
For production use cases, where you run your production Postgres as well as any development branches on our platform.
In either case, you can you can deploy PostgreSQL instances on our cloud, or in your cloud account or even on-prem (BYOC).
In this deployment model, we create a “production clone” of your production Postgres on the Xata platform. This works with
any Postgres service (AWS RDS, Amazon Aurora, GCP Cloud SQL, Azure Database, etc.). The production clone is updated with
the production dataset periodically, for example every night. We call this process “cloning,” and it is accomplished using our
open-source CLI (xata clone). You can automate the cloning process using GitHub Actions or any other CI/CD tooling.Anonymization can be done during the cloning phase. Depending on your requirements, you can set anonymization in strict
or relaxed mode. In strict mode, any new table and column needs to be explicitly present in the configuration,
minimizing the chance of accidental leaks.Because xata clone is executed in the context of your environment (e.g. you cloud account), there are two important benefits:
The tool has access to your production database without requiring changes to your external firewall rules.
Sensitive data is anonymized before it ever leaves your cloud account.
From the “production clone”, you can create instant branches with all the data, for your development previews, ephemeral environments,
or ad-hoc testing needs.
In this deployment model, you run both production and any staging or development branches you require on the Xata platform. Your production
branch is typically configured for high availability (with one or multiple read replicas). Development branches generally use a single
instance and are configured with lower CPU and memory resources to save costs.If you’d like to set up anonymization between your production and development branches, as well as have stricter controls on who can access production, you can use two Xata organizations. In the production organization you run only the production branch. You can configure xata clone to copy and anonymize the data between prod and staging.
Each branch has one primary PostgreSQL instance and can have zero or more replicas. Replicas can serve read-only traffic and act as standby promotion targets.Configure at least 1 replica for production workloads. If the primary becomes unavailable, Xata can automatically promote a healthy replica. During maintenance or an upgrade that requires replacing the primary, Xata can first switch over to a replica to minimize disruption. Failovers and planned switchovers can briefly interrupt existing connections, so applications must reconnect and retry transient failures as appropriate.
A branch with 0 replicas is not suitable for production workloads. It has no standby promotion target and cannot automatically fail over. A primary failure, or an update that requires the primary to restart or be replaced, makes the database unavailable until the primary is available again.
Choose an endpoint based on where each connection should go:
Primary only (rw): Connects to the primary for reads and writes.
Primary or replica (r): Connects to either the primary or a replica. Use it only for read-only workloads; writes are unreliable because the connection can land on a read-only replica.
Replica only (ro): Connects only to read-only replicas and requires at least 1 replica.
Pooler (pooled_rw): Provides pooled connections to the primary.
In this deployment model, we install the whole dataplane part of Xata in a Kubernetes setup that you control. This can be in your
own cloud account (AWS, Azure, GCP, Hetzner, etc.) or on-premises. The minimal setup requires three Kubernetes nodes, and there are multiple
installation models (disaggregated, hyper-converged, or hybrid). Our engineers will help you choose the best setup and configure it for you.This model brings the following benefits:
Security, compliance, and data governance. This setup ensure that all Postgres databases are started in your usual production environment.
Better use of your cloud provider credits. Since you pay for the Kubernetes nodes directly to your cloud provider, you can take advantage fully of your cloud credits, discounts, and negotiated private agreements.
Throughput and latency. Depending on your hardware and networking setup, this deployment model can achieve levels of performance not possible when using a separate cloud account.
The Xata control plane—responsible for managing organizations, users, regions, and instances—continues to run in our AWS account. Latency between
the control and data planes is not critical, as it involves only control messages (e.g., start/stop instance). By keeping the control plane in
our account (and optionally also the monitoring/observability data), we can provide you with a managed service similar to what you’d get
when deploying on our platform.This setup is especially convenient if you want to offer an internal “Postgres as a service” or if you’re looking to white-label Xata for your customers.If you have any question regarding BYOC, do not hesitate to write us an email.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Xata","colors":{"primary":"#735adc","light":"#735adc","dark":"#735adc"},"logo":{"light":"https://mintcdn.com/xata/rYmGPszzEBdWMgvX/logo/light.svg?fit=max\u0026auto=format\u0026n=rYmGPszzEBdWMgvX\u0026q=85\u0026s=4ef098482078f4153c39dc17dd26476b","dark":"https://mintcdn.com/xata/rYmGPszzEBdWMgvX/logo/dark.svg?fit=max\u0026auto=format\u0026n=rYmGPszzEBdWMgvX\u0026q=85\u0026s=906164890c462dfd9eb1d334f76aa98d"},"favicon":"https://mintcdn.com/xata/rYmGPszzEBdWMgvX/favicon.svg?fit=max\u0026auto=format\u0026n=rYmGPszzEBdWMgvX\u0026q=85\u0026s=d86bc351b43f47f5187c041a7cb5539a","api":{},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://xata.io/contact-support","label":"Support"},{"href":"https://www.xatastatus.com/","label":"Status"},{"href":"https://github.com/xataio","label":"GitHub"}],"primary":{"type":"button","label":"Xata Console","href":"https://console.xata.io/"}},"footer":{"socials":{"x":"https://twitter.com/xata","linkedin":"https://www.linkedin.com/company/xataio","github":"https://github.com/xataio","discord":"https://xata.io/discord","youtube":"https://www.youtube.com/@xataio"}},"fonts":{"family":"Geist"},"icons":{"library":"fontawesome"},"integrations":{"gtm":{"tagId":"GTM-PMD75RM"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"xata","hasAudioNarration":false,"actualSubdomain":"xata","customDomains":["xata.io"],"gitSource":{"type":"github","owner":"xataio","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1fe87ed5e3c6256df8643","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Guides","count":60},{"language":"default","tag":"API Reference","count":51},{"language":"default","tag":"Endpoints","count":51},{"language":"default","tag":"Open Source","count":34},{"language":"default","tag":"pgstream","count":34},{"language":"default","tag":"Organizations","count":22},{"language":"default","tag":"CLI Reference","count":19},{"language":"default","tag":"Manage","count":17},{"language":"default","tag":"Release Notes","count":15},{"language":"default","tag":"AI Agents","count":10}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@xata.io"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#navigation-items li[id=\"/overview\"]>button[aria-controls]>div:last-child{display:none}"}],"page":{"pagePath":"core-concepts/deployment","slug":"/core-concepts/deployment","pageMetadata":{"title":"Deployment Models","description":"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.","icon":"cloud","href":"/core-concepts/deployment"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`You can use Xata in two major ways:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`For staging and development use cases`}),`, where you use Xata to enhance other Postgres DBaaS offerings by adding features like instant database branching and data anonymization.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`For production use cases`}),`, where you run your production Postgres as well as any development branches on our platform.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`In either case, you can you can deploy PostgreSQL instances on our cloud, or in your cloud account or even on-prem (BYOC).`}),`\n`,_jsx(Heading,{level:`2`,id:`production-clone-and-development-branches-on-xata`,children:`Production clone and development branches on Xata`}),`\n`,_jsxs(_components.p,{children:[`In this deployment model, we create a “production clone” of your production Postgres on the Xata platform. This works with\nany Postgres service (AWS RDS, Amazon Aurora, GCP Cloud SQL, Azure Database, etc.). The production clone is updated with\nthe production dataset periodically, for example every night. We call this process “cloning,” and it is accomplished using our\nopen-source CLI (`,_jsx(_components.code,{children:`xata clone`}),`). You can automate the cloning process using GitHub Actions or any other CI/CD tooling.`]}),`\n`,_jsxs(_components.p,{children:[`Anonymization can be done during the cloning phase. Depending on your requirements, you can set anonymization in `,_jsx(_components.code,{children:`strict`}),`\nor `,_jsx(_components.code,{children:`relaxed`}),` mode. In `,_jsx(_components.code,{children:`strict`}),` mode, any new table and column needs to be explicitly present in the configuration,\nminimizing the chance of accidental leaks.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=19ef06a16fb3d83a6d6bff838395b5b1`,alt:`Xata for staging and dev use-cases`,className:`mint-rounded-lg`,\"data-og-width\":`1084`,width:`1084`,\"data-og-height\":`1270`,height:`1270`,\"data-path\":`images/deployment-models/xata-deployment-staging.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=280\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=1488ccabf4baacc47caa9e934f769fd0 280w, https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=560\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=102c8cf96bdd5791314fb86734c1f8d9 560w, https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=840\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=422dcbf1cc63d58ee1c453bbd37d651d 840w, https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=a723099594f49572f6fd7f9c314cc9ff 1100w, https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=659996995b99499737c4f84be034c759 1650w, https://mintcdn.com/xata/zunLvnbMMVhTIsZq/images/deployment-models/xata-deployment-staging.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zunLvnbMMVhTIsZq\u0026q=85\u0026s=9c985722bd792264ea7232d21a1e0ba2 2500w`}),`\n`,_jsxs(_components.p,{children:[`Because `,_jsx(_components.code,{children:`xata clone`}),` is executed in the context of your environment (e.g. you cloud account), there are two important benefits:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The tool has access to your production database without requiring changes to your external firewall rules.`}),`\n`,_jsx(_components.li,{children:`Sensitive data is anonymized before it ever leaves your cloud account.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`From the “production clone”, you can create instant branches with all the data, for your development previews, ephemeral environments,\nor ad-hoc testing needs.`}),`\n`,_jsx(Heading,{level:`2`,id:`production-and-development-branches-on-xata`,children:`Production and development branches on Xata`}),`\n`,_jsx(_components.p,{children:`In this deployment model, you run both production and any staging or development branches you require on the Xata platform. Your production\nbranch is typically configured for high availability (with one or multiple read replicas). Development branches generally use a single\ninstance and are configured with lower CPU and memory resources to save costs.`}),`\n`,_jsxs(_components.p,{children:[`If you’d like to set up anonymization between your production and development branches, as well as have stricter controls on who can access production, you can use two Xata organizations. In the production organization you run only the production branch. You can configure `,_jsx(_components.code,{children:`xata clone`}),` to copy and anonymize the data between prod and staging.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=1e26d43a7395275eaa34781e6a0b4574`,alt:`Production and staging/dev branches on the Xata platform`,className:`mint-rounded-lg`,\"data-og-width\":`1130`,width:`1130`,\"data-og-height\":`1304`,height:`1304`,\"data-path\":`images/deployment-models/xata-prod-branches-diagram.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=280\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=69e3223318bc7ec839606562757d0924 280w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=560\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=d2819e7294b1439c5f04fbfa480e7323 560w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=840\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=75020cb1119e3056d6bad089f58c7ad9 840w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=7266cafc29bad3b3fe350679173723fe 1100w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=434cd6e0c955246aa0a5d50a422bc51c 1650w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/xata-prod-branches-diagram.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=c1590dc45ef306a4df77a1ec35798176 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`high-availability-and-replicas`,children:`High availability and replicas`}),`\n`,_jsx(_components.p,{children:`Each branch has one primary PostgreSQL instance and can have zero or more replicas. Replicas can serve read-only traffic and act as standby promotion targets.`}),`\n`,_jsx(_components.p,{children:`Configure at least 1 replica for production workloads. If the primary becomes unavailable, Xata can automatically promote a healthy replica. During maintenance or an upgrade that requires replacing the primary, Xata can first switch over to a replica to minimize disruption. Failovers and planned switchovers can briefly interrupt existing connections, so applications must reconnect and retry transient failures as appropriate.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`A branch with 0 replicas is not suitable for production workloads.`}),` It has no standby promotion target and cannot automatically fail over. A primary failure, or an update that requires the primary to restart or be replaced, makes the database unavailable until the primary is available again.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`connection-endpoints`,children:`Connection endpoints`}),`\n`,_jsx(_components.p,{children:`Choose an endpoint based on where each connection should go:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Primary only (`,_jsx(_components.code,{children:`rw`}),`)`]}),`: Connects to the primary for reads and writes.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Primary or replica (`,_jsx(_components.code,{children:`r`}),`)`]}),`: Connects to either the primary or a replica. Use it only for read-only workloads; writes are unreliable because the connection can land on a read-only replica.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Replica only (`,_jsx(_components.code,{children:`ro`}),`)`]}),`: Connects only to read-only replicas and requires at least 1 replica.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Pooler (`,_jsx(_components.code,{children:`pooled_rw`}),`)`]}),`: Provides pooled connections to the primary.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For connection string options, see `,_jsx(_components.a,{href:`/platform/branch#endpoint-types`,children:`Branch Endpoint Types`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`configuring-replicas`,children:`Configuring replicas`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`During branch creation`}),`: Select the replica count when creating a base branch in the Xata console, or pass `,_jsx(_components.code,{children:`--replicas`}),` to `,_jsx(_components.a,{href:`/cli/branch#create`,children:_jsx(_components.code,{children:`xata branch create`})}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On existing branches`}),`: Open `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Instance Details`}),` and adjust `,_jsx(_components.strong,{children:`Replicas`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`bring-your-own-cloud-byoc`,children:`Bring Your Own Cloud (BYOC)`}),`\n`,_jsx(_components.p,{children:`In this deployment model, we install the whole dataplane part of Xata in a Kubernetes setup that you control. This can be in your\nown cloud account (AWS, Azure, GCP, Hetzner, etc.) or on-premises. The minimal setup requires three Kubernetes nodes, and there are multiple\ninstallation models (disaggregated, hyper-converged, or hybrid). Our engineers will help you choose the best setup and configure it for you.`}),`\n`,_jsx(_components.p,{children:`This model brings the following benefits:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Security, compliance, and data governance.`}),` This setup ensure that all Postgres databases are started in your usual production environment.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Better use of your cloud provider credits.`}),` Since you pay for the Kubernetes nodes directly to your cloud provider, you can take advantage fully of your cloud credits, discounts, and negotiated private agreements.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Throughput and latency.`}),` Depending on your hardware and networking setup, this deployment model can achieve levels of performance not possible when using a separate cloud account.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=f89e157ddc85ef95ac6dda6b13526051`,alt:`BYOC deployment model`,className:`mint-rounded-lg`,\"data-og-width\":`1132`,width:`1132`,\"data-og-height\":`992`,height:`992`,\"data-path\":`images/deployment-models/byoc-architecture.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=280\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=9a1dc11a1a7c9f884c8d938781649b5f 280w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=560\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=9b0a8ee0399fe345af80eca4c5d22487 560w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=840\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=cad83c9088351fad71bc84d3330daadd 840w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=862dc4ceaac5bc9e98a5876f29f487ee 1100w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=cc5e8368a3a7751b53004f7c919c62fa 1650w, https://mintcdn.com/xata/PDDxPY9xptrEGBCP/images/deployment-models/byoc-architecture.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PDDxPY9xptrEGBCP\u0026q=85\u0026s=8d0d0132faeef1579284df8016ed786c 2500w`}),`\n`,_jsx(_components.p,{children:`The Xata control plane—responsible for managing organizations, users, regions, and instances—continues to run in our AWS account. Latency between\nthe control and data planes is not critical, as it involves only control messages (e.g., start/stop instance). By keeping the control plane in\nour account (and optionally also the monitoring/observability data), we can provide you with a managed service similar to what you’d get\nwhen deploying on our platform.`}),`\n`,_jsx(_components.p,{children:`This setup is especially convenient if you want to offer an internal “Postgres as a service” or if you’re looking to white-label Xata for your customers.`}),`\n`,_jsxs(_components.p,{children:[`If you have any question regarding BYOC, do not hesitate to write us `,_jsx(_components.a,{href:`mailto:info@xata.io`,children:`an email`}),`.`]})]})}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":{"config":{},"pageMetadata":{"title":"Deployment Models","description":"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.","icon":"cloud","href":"/core-concepts/deployment"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Production clone and development branches on Xata","slug":"production-clone-and-development-branches-on-xata","depth":2,"children":[]},{"title":"Production and development branches on Xata","slug":"production-and-development-branches-on-xata","depth":2,"children":[{"title":"High availability and replicas","slug":"high-availability-and-replicas","depth":3,"children":[]},{"title":"Connection endpoints","slug":"connection-endpoints","depth":4,"children":[]},{"title":"Configuring replicas","slug":"configuring-replicas","depth":4,"children":[]}]},{"title":"Bring Your Own Cloud (BYOC)","slug":"bring-your-own-cloud-byoc","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/xata/42338cddc6e87248/tracking.js"],"dynamicCss":".mint-rounded-lg {\n border-radius: 0.5rem\n}","subdomain":"xata","siteName":"Xata","title":"Deployment Models - Xata","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-27T13:30:23.094Z","originalFileLocation":"core-concepts/deployment.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=\"system\"}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=\"description\" content=\"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Xata\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_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=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deployment Models - Xata\">\u003cmeta data-mint-head property=\"og:description\" content=\"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Xata\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://xata.io/docs/core-concepts/deployment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://xata.mintlify.site/docs/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Deployment+Models\u0026amp;description=The+various+ways+you+can+deploy+Xata%2C+whether+for+staging%2Fdev+or+production%2C+hosted+in+our+cloud+or+in+your+cloud+account.\u0026amp;theme=1df92fd69c10f331b7ecd2a0\u0026amp;signature=0c35a35085df23faadd390dc93dc46bd16dc78374f22b4b85e956854ee7b48c3\">\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=\"Deployment Models - Xata\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://xata.mintlify.site/docs/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Deployment+Models\u0026amp;description=The+various+ways+you+can+deploy+Xata%2C+whether+for+staging%2Fdev+or+production%2C+hosted+in+our+cloud+or+in+your+cloud+account.\u0026amp;theme=1df92fd69c10f331b7ecd2a0\u0026amp;signature=0c35a35085df23faadd390dc93dc46bd16dc78374f22b4b85e956854ee7b48c3\">\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=\"/docs/mintlify-assets/_mintlify/favicons/xata/aBhvMQRuTYnJZzL3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Xata\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#735adc\">\u003clink data-mint-head rel=\"canonical\" href=\"https://xata.io/docs/core-concepts/deployment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/core-concepts/deployment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://xata.io/#organization\",\"name\":\"Xata\",\"url\":\"https://xata.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/xata/rYmGPszzEBdWMgvX/logo/light.svg?fit=max\u0026auto=format\u0026n=rYmGPszzEBdWMgvX\u0026q=85\u0026s=4ef098482078f4153c39dc17dd26476b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://xata.io/docs#website\",\"name\":\"Xata\",\"url\":\"https://xata.io/docs\",\"publisher\":{\"@id\":\"https://xata.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://xata.io/docs/core-concepts/deployment#webpage\",\"url\":\"https://xata.io/docs/core-concepts/deployment\",\"name\":\"Deployment Models\",\"description\":\"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\",\"dateModified\":\"2026-08-27T13:30:23.094Z\",\"isPartOf\":{\"@id\":\"https://xata.io/docs#website\"},\"breadcrumb\":{\"@id\":\"https://xata.io/docs/core-concepts/deployment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://xata.io/docs/core-concepts/deployment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Core Concepts\",\"item\":\"https://xata.io/docs/core-concepts/branching\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deployment Models\",\"item\":\"https://xata.io/docs/core-concepts/deployment\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://xata.io/docs/core-concepts/deployment#article\",\"headline\":\"Deployment Models\",\"name\":\"Deployment Models\",\"description\":\"The various ways you can deploy Xata, whether for staging/dev or production, hosted in our cloud or in your cloud account.\",\"url\":\"https://xata.io/docs/core-concepts/deployment\",\"mainEntityOfPage\":{\"@id\":\"https://xata.io/docs/core-concepts/deployment#webpage\"},\"dateModified\":\"2026-08-27T13:30:23.094Z\",\"publisher\":{\"@id\":\"https://xata.io/#organization\"},\"isPartOf\":{\"@id\":\"https://xata.io/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Xata\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Xata","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","directory":"card","groups":[{"group":"Introduction","icon":"sparkles","root":{"title":"Xata Documentation","icon":"book","sidebarTitle":"Overview","mode":"frame","href":"/overview"},"pages":[]},{"group":"Get Started","icon":"rocket","pages":[{"title":"Quickstart","icon":"rocket","href":"/quickstart"}]},{"group":"Core Concepts","icon":"layer-group","pages":[{"title":"Branching","icon":"code-branch","iconType":"regular","href":"/core-concepts/branching"},{"title":"Data Anonymization","icon":"user-secret","href":"/core-concepts/anonymization"},{"title":"Schema Changes","icon":"database","href":"/core-concepts/schema-changes"},{"title":"Scale to Zero","icon":"pause","href":"/core-concepts/scale-to-zero"},{"title":"Serverless Proxy","description":"Connect to your Xata database via HTTP and WebSocket connections for serverless and edge environments.","icon":"bolt","href":"/core-concepts/serverless-proxy"},{"title":"Deployment Models","icon":"cloud","href":"/core-concepts/deployment"}]},{"group":"Branching Workflows","icon":"code-branch","pages":[{"title":"Create Branch","description":"GitHub Actions workflow for creating and managing development branches for pull requests","icon":"github","href":"/automations/ga-pr"},{"title":"Create a production clone","icon":"copy","href":"/tutorials/create-production-clone"},{"title":"Data Anonymization","icon":"user-secret","href":"/core-concepts/anonymization"},{"title":"Create Streaming Replica","icon":"right-left","href":"/tutorials/streaming-replication"},{"title":"Make Schema Changes","icon":"code-merge","href":"/tutorials/schema-change"},{"title":"Find and fix slow queries on a Xata branch","icon":"gauge-high","href":"/tutorials/find-slow-queries"}]},{"group":"Connect","icon":"plug","pages":[{"group":"ORMs","icon":"database","expanded":false,"pages":[{"title":"Use Xata with Drizzle","icon":"droplet","href":"/quickstarts/drizzle"}]},{"group":"Platforms","icon":"cloud","expanded":false,"pages":[{"title":"Use Xata with Netlify","icon":"cloud-arrow-up","href":"/quickstarts/netlify"},{"title":"Use Xata with Railway","icon":"train","href":"/quickstarts/railway"}]},{"group":"Tools","icon":"diagram-project","expanded":false,"pages":[{"title":"Use Xata with n8n","icon":"diagram-project","href":"/quickstarts/n8n"}]}]},{"group":"Manage","icon":"sliders","pages":[{"title":"Account Management","icon":"circle-user","href":"/platform/account"},{"title":"Organizations","icon":"users","href":"/platform/organization"},{"title":"Organization roles","icon":"user-shield","href":"/platform/organization-roles"},{"title":"API Keys","icon":"key","href":"/platform/api-key"},{"title":"MCP Server","icon":"plug","href":"/platform/mcp"},{"title":"Projects","icon":"folder","href":"/platform/project"},{"title":"Branches","icon":"code-branch","href":"/platform/branch"},{"title":"Compute","icon":"microchip","href":"/platform/compute"},{"title":"Schemas","icon":"sitemap","href":"/platform/schemas"},{"title":"Migrations","icon":"code-merge","href":"/platform/migrations"},{"title":"SQL Editor","icon":"magnifying-glass","href":"/platform/sql-editor"},{"title":"Query insights","icon":"chart-simple","href":"/platform/query-insights"},{"title":"Metrics","icon":"chart-line","href":"/platform/metrics"},{"title":"Extensions","icon":"puzzle-piece","href":"/platform/extensions"},{"title":"Logs","icon":"file-lines","href":"/platform/logs"},{"title":"AWS PrivateLink","icon":"lock","href":"/platform/privatelink"},{"title":"Single sign-on","icon":"shield-halved","href":"/platform/sso"}]},{"group":"Import and Migrate","icon":"database","pages":[{"title":"Overview","icon":"list","href":"/migrations/overview"},{"title":"AWS RDS","icon":"aws","href":"/migrations/aws-rds"},{"title":"AWS Aurora","icon":"aws","href":"/migrations/aws-aurora"},{"title":"GCP Cloud SQL","icon":"google","href":"/migrations/gcp-cloudsql"},{"title":"Azure Database","icon":"microsoft","href":"/migrations/azure"},{"title":"Self-Hosted PostgreSQL","icon":"database","href":"/migrations/self-hosted"},{"title":"Greenmask (subsets)","icon":"scissors","href":"/migrations/greenmask"},{"title":"Neon","icon":"server","href":"/migrations/neon"},{"title":"Supabase","icon":"bolt","href":"/migrations/supabase"},{"title":"Parquet files","icon":"file","href":"/migrations/parquet"}]},{"group":"Workflows","icon":"gears","pages":[{"title":"GitHub App","icon":"github","href":"/automations/github-app"},{"title":"Vercel preview deployments","icon":"cloud-arrow-up","href":"/automations/vercel-github-app"},{"title":"Create Branch","icon":"github","href":"/automations/ga-pr"},{"title":"Scheduled Clone","icon":"github","href":"/automations/ga-clone"},{"title":"Merge Readiness","icon":"github","href":"/automations/ga-check"},{"title":"Scheduled Clone","icon":"calendar","href":"/automations/kubernetes-clone"},{"title":"Bulk Delete Branches","icon":"github","href":"/automations/ga-cleanup"}]},{"group":"AI Agents","icon":"robot","root":{"title":"Xata for Agents","icon":"robot","href":"/ai-agents/overview"},"pages":[{"title":"Agent onboarding","icon":"wand-magic-sparkles","href":"/ai-agents/onboarding"},{"title":"Agent Skills","icon":"star","href":"/ai-agents/agent-skills"},{"title":"Claude Code","icon":"terminal","href":"/ai-agents/claude-code"},{"title":"Codex","icon":"code","href":"/ai-agents/codex"},{"title":"Cursor","icon":"arrow-pointer","href":"/ai-agents/cursor"},{"title":"OpenCode","icon":"terminal","href":"/ai-agents/opencode"},{"title":"GitHub Copilot","icon":"github","href":"/ai-agents/github-copilot"},{"title":"Windsurf","icon":"wind","href":"/ai-agents/windsurf"},{"title":"Cline","icon":"check-double","href":"/ai-agents/cline"},{"title":"Devin","icon":"cloud","href":"/ai-agents/devin"}]},{"group":"Reference","icon":"book","pages":[{"title":"Changelog","icon":"ship","href":"/changelog"}]}]},{"tab":"API Reference","icon":"terminal","pages":[{"title":"API Reference","href":"/api-reference/organizations/get-list-of-organizations"}]},{"tab":"CLI Reference","icon":"square-terminal","pages":[{"title":"CLI Reference","href":"/cli"}]},{"tab":"Open Source","icon":"code-branch","menu":[{"item":"pgstream","icon":"right-left","description":"Postgres replication with schema-aware streaming.","pages":[{"title":"pgstream","href":"/opensource/pgstream/overview"}]}],"pages":[{"title":"Open Source","href":"/opensource/pgstream/overview"}]}]},"basePath":"","title":"Deployment Models - Xata","buildId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","deploymentId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-g3ZzIKzc.js","lightbox-handle-r17bVUz3.js"]}