This article includes some considerations to improve server sync performance.
Overview
In environments with a high density of devices and data traffic, additional optimizations may be necessary:
Limit Active Connections: Dozens of devices in a single mesh can lead
to congestion in some cases. Strategically limit the number of active connections to balance
the load effectively.
Avoid Verbose Logging: Verbose logging, especially with large datasets,
can significantly slow down the synchronization process. Ensure that logging is
kept to a necessary minimum during high-load times to prevent this.
Use Routing Hints: When using the Ditto Server optional cloud deployment and managing large
document collections, you can group peers with similar data access patterns by
assigning specific labels, known as routing hints.
Flood-Fill Strategy: For large-scale sync, ensure all peers in the same
local mesh share the same subscription for optimal performance.
Represented as an unsigned integer with 32 bits (uint32), a routing hint is a
value you define at the device level that Ditto Server references to optimize
connections with peers consuming the same datasets.For example, several restaurants operate on the same Ditto Server instance and
devices within each restaurant share the same data. Each restaurant is identified by
a 32-bit integer, which is used as the routing hint to the server to ensure data is co-located.
When to Use Routing Hints
Routing hints are most important for multi-site or multi-location apps where different groups of devices access different subsets of data.When a routing hint is set, the Ditto Server can co-locate peers that share the same hint, reducing the overhead of initial sync. Without a routing hint, the server must evaluate all active peers when serving an initial sync request, which increases load.Setting a routing hint is especially beneficial when the server is under heavy load or resource-constrained (for example, limited disk IOPS on a shared cloud instance). In these scenarios, the routing hint helps the server prioritize sync traffic for related peers and can significantly reduce initial sync times.
If your app uses sync subscriptions and experiences slow initial sync from the Ditto Server, adding a routing hint is a recommended first step before contacting support for infrastructure scaling.
Code Samples
To set a routing hint in your app’s transport config, from the top-most scope before calling startSync.
// The routing-hints API is not available for the current Go SDK Public Preview
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ditto","colors":{"primary":"#1E1E1E","light":"#F6F6F6","dark":"#1E1E1E"},"logo":{"light":"https://mintcdn.com/ditto-248bc0d1/u_USsYZWDik2feFj/logo/ditto-dark.svg?fit=max\u0026auto=format\u0026n=u_USsYZWDik2feFj\u0026q=85\u0026s=d835cb30d8f1cdedf44672a712e52ed2","dark":"https://mintcdn.com/ditto-248bc0d1/u_USsYZWDik2feFj/logo/ditto-light.svg?fit=max\u0026auto=format\u0026n=u_USsYZWDik2feFj\u0026q=85\u0026s=485f7a6b8ded70a8b3458ca62383883f"},"favicon":"https://mintcdn.com/ditto-248bc0d1/tCfSF1TTvWS_3XsC/favicon.png?fit=max\u0026auto=format\u0026n=tCfSF1TTvWS_3XsC\u0026q=85\u0026s=06b307a481752b4765930fc23d247612","api":{"playground":{"display":"simple"},"examples":{"languages":["curl"]}},"navbar":{"links":[{"icon":"clipboard-list","href":"/release-notes","label":"Release Notes"},{"href":"https://support.ditto.com","label":"Support"}],"primary":{"type":"button","label":"Start Free","href":"https://portal.ditto.live/create-account?_gl=1*1bow2wn*_ga*NTY3MzI4MDE4LjE3Mjc3NjM2Njg.*_ga_D8PMW3CCL2*MTcyNzc2MzY2Ny4xLjAuMTcyNzc2MzY2Ny42MC4wLjA."}},"footer":{"socials":{"x":"https://www.twitter.com/dittolive","github":"https://github.com/getditto","linkedin":"https://www.linkedin.com/company/dittolive"}},"fonts":{"heading":{"family":"Inter","weight":500},"body":{"family":"Inter"}},"styling":{"eyebrows":"section","latex":false},"integrations":{"gtm":{"tagId":"GTM-WCZQB8FP"}},"banner":{"content":"📣 The Ditto Developer Survey is now live! [Take the survey](https://tally.so/r/Np9ZdN).","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ditto-248bc0d1","hasAudioNarration":false,"actualSubdomain":"ditto-248bc0d1","customDomains":["docs.ditto.live"],"gitSource":{"type":"github","owner":"getditto","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true,"contextualFeedback":{"allowEmail":true}},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af7915d04e3adf0eb5bd640","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Build with the SDK","count":210},{"language":"default","tag":"SDKs","count":77},{"language":"default","tag":"Reference","count":53},{"language":"default","tag":"Overview \u0026 Setup","count":33},{"language":"default","tag":"Query Language (DQL)","count":32},{"language":"default","tag":"Cloud Platform","count":30},{"language":"default","tag":"Deploying your App","count":23},{"language":"default","tag":"Migration Guides","count":20},{"language":"default","tag":"Getting Started","count":17},{"language":"default","tag":"Syncing Data","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"@font-face{font-family:'Kairos Sans';src:url('https://cdn.prod.website-files.com/6761335affb7c1ca9aae00dd/676134b94c85d94594f80209_KairosSans_Variable.ttf');font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:'Aeonik Fono';src:url('https://cdn.prod.website-files.com/6761335affb7c1ca9aae00dd/6761352bf250ec43e156773b_AeonikFono-Medium.woff2');font-display:swap;font-weight:400;font-style:normal}#header a,.eyebrow{font-family:'Aeonik Fono';text-transform:uppercase}#header p{font-weight:500}#navbar a,button{font-family:'Aeonik Fono';text-transform:uppercase}h1{font-family:'Kairos Sans';letter-spacing:normal!important;font-variation-settings:\"wdth\" 112}#table-of-contents{font-family:'Aeonik Fono';text-transform:uppercase}a.card.block h2{font-family:'Aeonik Fono';font-weight:400;text-transform:uppercase}html[data-current-path^=\"/sdk/v4\"] header a[href=\"/release-notes\"]{display:none}.prose .rn-overview a{border-bottom:0;font-weight:500}.prose .rn-overview a:hover,.prose .rn-overview a:focus-visible{border-bottom:1px solid rgb(var(--primary))}.prose .rn-summary a{border-bottom:0}.prose .rn-summary a:hover,.prose .rn-summary a:focus-visible{border-bottom:1px solid rgb(var(--primary))}"}],"page":{"pagePath":"sdk/latest/deployment/setting-routing-hints","slug":"/sdk/latest/deployment/setting-routing-hints","pageMetadata":{"title":"Optimizing Server Performance","description":"This article includes some considerations to improve server sync performance.","icon":"server","href":"/sdk/latest/deployment/setting-routing-hints"},"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: \"This article includes some considerations to improve server sync performance.\"\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`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`In environments with a high density of devices and data traffic, additional optimizations may be necessary:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Limit Active Connections`}),`: Dozens of devices in a single mesh can lead\nto congestion in some cases. Strategically limit the number of active connections to balance\nthe load effectively.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Avoid Verbose Logging`}),`: Verbose logging, especially with large datasets,\ncan significantly slow down the synchronization process. Ensure that logging is\nkept to a necessary minimum during high-load times to prevent this.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use Routing Hints`}),`: When using the Ditto Server optional cloud deployment and managing large\ndocument collections, you can group peers with similar data access patterns by\nassigning specific labels, known as `,_jsx(_components.em,{children:`routing hints.`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Flood-Fill Strategy`}),`: For large-scale sync, ensure all peers in the same\nlocal mesh share the same subscription for optimal performance.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For additional information, see `,_jsx(_components.a,{href:`/sdk/latest/deployment/troubleshooting`,children:`Troubleshooting`}),` and `,_jsx(_components.a,{href:`/key-concepts/mesh-networking#transports`,children:`Transports`})]}),`\n`,_jsx(Heading,{level:`2`,id:`routing-hints`,children:`Routing Hints`}),`\n`,_jsxs(_components.p,{children:[`Represented as an unsigned integer with 32 bits (`,_jsx(_components.code,{children:`uint32`}),`), a routing hint is a\nvalue you define at the device level that Ditto Server references to optimize\nconnections with peers consuming the same datasets.`]}),`\n`,_jsx(_components.p,{children:`For example, several restaurants operate on the same Ditto Server instance and\ndevices within each restaurant share the same data. Each restaurant is identified by\na 32-bit integer, which is used as the routing hint to the server to ensure data is co-located.`}),`\n`,_jsx(Heading,{level:`3`,id:`when-to-use-routing-hints`,children:`When to Use Routing Hints`}),`\n`,_jsx(_components.p,{children:`Routing hints are most important for multi-site or multi-location apps where different groups of devices access different subsets of data.`}),`\n`,_jsx(_components.p,{children:`When a routing hint is set, the Ditto Server can co-locate peers that share the same hint, reducing the overhead of initial sync. Without a routing hint, the server must evaluate all active peers when serving an initial sync request, which increases load.`}),`\n`,_jsx(_components.p,{children:`Setting a routing hint is especially beneficial when the server is under heavy load or resource-constrained (for example, limited disk IOPS on a shared cloud instance). In these scenarios, the routing hint helps the server prioritize sync traffic for related peers and can significantly reduce initial sync times.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`If your app uses sync subscriptions and experiences slow initial sync from the Ditto Server, adding a routing hint is a recommended first step before contacting support for infrastructure scaling.`})}),`\n`,_jsx(Heading,{level:`3`,id:`code-samples`,children:`Code Samples`}),`\n`,_jsxs(_components.p,{children:[`To set a routing hint in your app’s transport config, from the top-most scope before calling `,_jsx(_components.code,{children:`startSync`}),`.`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Swift`,numberOfLines:`7`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ditto.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`global`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`routingHint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` try`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ditto.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(error.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`localizedDescription`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Kotlin`,numberOfLines:`5`,language:`kotlin`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`kotlin`,children:_jsxs(_components.code,{language:`kotlin`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ditto.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`updateTransportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { config `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`->`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` config.global.routingHint `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234U`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ditto.sync.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`JS`,numberOfLines:`5`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`updateTransportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`global`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`routingHint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Java`,numberOfLines:`4`,language:`java`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`java`,children:_jsxs(_components.code,{language:`java`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`updateTransportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(config `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getGlobal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setRoutingHint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1234`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`C#`,numberOfLines:`5`,language:`csharp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`UpdateTransportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Global`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`RoutingHint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`C++`,numberOfLines:`4`,language:`cpp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`cpp`,children:_jsxs(_components.code,{language:`cpp`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`update_transport_config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`](`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`TransportConfig`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` \u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`global`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`routing_hint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start_sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Rust`,numberOfLines:`5`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`let`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` mut`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` TransportConfig`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`global`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`routing_hint `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`set_transport_config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ditto`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Dart`,numberOfLines:`5`,language:`dart`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`dart`,children:_jsxs(_components.code,{language:`dart`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ditto.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`updateTransportConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((config) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` config.global.routingHint `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1234`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ditto.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`sync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`1`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// The routing-hints API is not available for the current Go SDK Public Preview`})}),`\n`]})})})]})]})}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":"Optimizing Server Performance","description":"This article includes some considerations to improve server sync performance.","icon":"server","href":"/sdk/latest/deployment/setting-routing-hints"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":1,"children":[]},{"title":"Routing Hints","slug":"routing-hints","depth":2,"children":[{"title":"When to Use Routing Hints","slug":"when-to-use-routing-hints","depth":3,"children":[]},{"title":"Code Samples","slug":"code-samples","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/ditto-248bc0d1/370d4f3cd5a1175c/inkeep.js","/_mintlify/custom/ditto-248bc0d1/c260eb4e17881548/release-notes-filters.js"],"subdomain":"ditto-248bc0d1","siteName":"Ditto","title":"Optimizing Server Performance - Ditto","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{"v5":{"href":"/sdk/latest/deployment/setting-routing-hints","matchLevel":0},"v4":{"href":"/sdk/v4/deployment/setting-routing-hints","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T21:42:18.447Z","originalFileLocation":"sdk/latest/deployment/setting-routing-hints.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=\"This article includes some considerations to improve server sync performance.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ditto\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_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/ditto-248bc0d1/9AZ87A7qeePs6thb/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Optimizing Server Performance - Ditto\">\u003cmeta data-mint-head property=\"og:description\" content=\"This article includes some considerations to improve server sync performance.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ditto\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ditto-248bc0d1.mintlify.site/_mintlify/api/og/v2?division=Deploying+your+App\u0026amp;title=Optimizing+Server+Performance\u0026amp;description=This+article+includes+some+considerations+to+improve+server+sync+performance.\u0026amp;theme=a144f5b080b1e51e4917c15c\u0026amp;signature=0cc7d36193598032ba7df89a3d4513ec1587ab19a5dc556b279e4ef7b8fe11d9\">\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=\"Optimizing Server Performance - Ditto\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This article includes some considerations to improve server sync performance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ditto-248bc0d1.mintlify.site/_mintlify/api/og/v2?division=Deploying+your+App\u0026amp;title=Optimizing+Server+Performance\u0026amp;description=This+article+includes+some+considerations+to+improve+server+sync+performance.\u0026amp;theme=a144f5b080b1e51e4917c15c\u0026amp;signature=0cc7d36193598032ba7df89a3d4513ec1587ab19a5dc556b279e4ef7b8fe11d9\">\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/ditto-248bc0d1/9AZ87A7qeePs6thb/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ditto\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1E1E1E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sdk/latest/deployment/setting-routing-hints.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ditto.live/#organization\",\"name\":\"Ditto\",\"url\":\"https://docs.ditto.live\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ditto-248bc0d1/u_USsYZWDik2feFj/logo/ditto-dark.svg?fit=max\u0026auto=format\u0026n=u_USsYZWDik2feFj\u0026q=85\u0026s=d835cb30d8f1cdedf44672a712e52ed2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ditto.live#website\",\"name\":\"Ditto\",\"url\":\"https://docs.ditto.live\",\"publisher\":{\"@id\":\"https://docs.ditto.live/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints#webpage\",\"url\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints\",\"name\":\"Optimizing Server Performance\",\"description\":\"This article includes some considerations to improve server sync performance.\",\"dateModified\":\"2026-11-09T21:42:18.447Z\",\"isPartOf\":{\"@id\":\"https://docs.ditto.live#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deploying your App\",\"item\":\"https://docs.ditto.live/sdk/latest/sync/managing-redundant-bluetooth-le-connections\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimizing Server Performance\",\"item\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints#article\",\"headline\":\"Optimizing Server Performance\",\"name\":\"Optimizing Server Performance\",\"description\":\"This article includes some considerations to improve server sync performance.\",\"url\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ditto.live/sdk/latest/deployment/setting-routing-hints#webpage\"},\"dateModified\":\"2026-11-09T21:42:18.447Z\",\"publisher\":{\"@id\":\"https://docs.ditto.live/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ditto.live#website\"}}]}\u003c/script>","agentPointerHref":"/sdk/latest/deployment/setting-routing-hints.md","siteName":"Ditto","nav":{"global":null,"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/home/introduction"}]},{"tab":"Build with the SDK","icon":{"style":"solid","name":"laptop-mobile"},"versions":[{"version":"v5","groups":[{"group":"Overview \u0026 Setup","pages":[{"title":"SDK v5 Homepage","sidebarTitle":"SDK Home","icon":"house","iconType":"solid","mode":"wide","href":"/sdk/latest/home"},{"title":"What's New in Ditto SDK v5","sidebarTitle":"What's New in v5","icon":"rocket","iconType":"solid","href":"/sdk/latest/v5-whats-new"},{"title":"Quickstart Task Apps - Overview","sidebarTitle":"Quickstart","icon":"rabbit","iconType":"solid","mode":"wide","href":"/sdk/latest/quickstarts/quickstarts-landing"},{"title":"Migration Guide for Atlas Device Sync","icon":"arrow-right-arrow-left","iconType":"solid","href":"/sdk/latest/quickstarts/mongodb-migrationguide"}]},{"group":"SDKs","pages":[{"group":"Swift","icon":{"style":"brands","name":"apple"},"pages":[{"title":"Swift Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/swift"},{"title":"Swift","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/swift"},{"title":"Swift Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/swift"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/swift"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Swift V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/swift-v4"},{"title":"Swift Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/swift-dql"}]},{"title":"Swift","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/swift/DittoSwift/5.2.0/api-reference/documentation/dittoswift/","href":"/sdk/latest/api-reference/swift"}]},{"group":"Kotlin","icon":{"style":"brands","name":"android"},"pages":[{"title":"Kotlin for Android Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/kotlin-android"},{"title":"Kotlin Install Guide","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/kotlin"},{"title":"Kotlin Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/kotlin"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/kotlin"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Kotlin V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/kotlin-v4"},{"title":"Kotlin Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/kotlin-dql"}]},{"group":"Resources","icon":{"style":"solid","name":"box-archive"},"pages":[{"title":"Optimizing Bundle Sizes for Android","href":"/best-practices/optimizing-bundle-sizes-for-android"}]},{"title":"Android","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/kotlin/ditto-kotlin/5.2.0/api-reference/","href":"/sdk/latest/api-reference/kotlin"}]},{"group":"Flutter","icon":{"style":"brands","name":"flutter"},"pages":[{"title":"Flutter Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/flutter"},{"title":"Flutter Install Guide","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/flutter"},{"title":"Flutter Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/flutter"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/flutter"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Flutter V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/flutter-v4"},{"title":"Flutter Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/flutter-dql"}]},{"title":"Flutter","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://pub.dev/documentation/ditto_live/latest/ditto_live/","href":"/sdk/latest/api-reference/flutter"}]},{"group":"React Native","icon":{"style":"brands","name":"react"},"pages":[{"title":"React Native Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/react-native"},{"title":"React Native","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/react-native"},{"title":"React Native Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/react-native"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/react-native"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"React Native V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/react-native-v4"},{"title":"React Native Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/react-native-dql"}]},{"title":"JavaScript","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/js/Ditto/5.2.0/api-reference/","href":"/sdk/latest/api-reference/js"}]},{"group":"JavaScript Web","icon":{"style":"brands","name":"js"},"pages":[{"title":"JavaScript Web Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/javascript-web"},{"title":"JavaScript","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/js"},{"title":"JavaScript Web Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/js-web"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/javascript-web"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"JavaScript Web V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/web-js-v4"},{"title":"JavaScript Web Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/web-js-dql"}]},{"title":"JavaScript","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/js/Ditto/5.2.0/api-reference/","href":"/sdk/latest/api-reference/js"}]},{"group":"JavaScript Node.js","icon":{"style":"brands","name":"js"},"pages":[{"title":"JavaScript Console App Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/javascript-console"},{"title":"JavaScript","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/js"},{"title":"Node.js \u0026 Electron Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/nodejs"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/javascript-nodejs"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Node.js V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/node-js-v4"},{"title":"Node.js Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/node-js-dql"}]},{"title":"JavaScript","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/js/Ditto/5.2.0/api-reference/","href":"/sdk/latest/api-reference/js"}]},{"group":"Java Server","icon":{"style":"brands","name":"java"},"pages":[{"title":"Java Server Quickstart","sidebarTitle":"Quickstart (Server)","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/java-server"},{"title":"Java for Servers \u0026 Desktop","sidebarTitle":"Install Guide (Server)","icon":"download","iconType":"solid","href":"/sdk/latest/install-guides/java/server"},{"title":"Java Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/java"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/java"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Java V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/java-v4"},{"title":"Java Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/java-dql"}]},{"title":"Java Server","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"http://software.ditto.live/java/ditto-java/5.2.0/api-reference/","href":"/sdk/latest/api-reference/java"}]},{"group":"C# - .NET","icon":{"style":"brands","name":"microsoft"},"pages":[{"title":".NET (C#) Console App Quickstart","sidebarTitle":"Quickstart (Console)","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/dotnet-console"},{"title":".NET (C#) MAUI Quickstart","sidebarTitle":"Quickstart (Maui)","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/dotnet-maui"},{"title":"C#","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/c-sharp"},{"title":"C# Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/c-sharp"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/c-sharp"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"C# V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/c-sharp-v4"},{"title":"C# Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/c-sharp-dql"}]},{"title":"C#","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/dotnet/Ditto/5.2.0/api-reference/","href":"/sdk/latest/api-reference/c-sharp"}]},{"group":"C++","icon":{"style":"solid","name":"code"},"pages":[{"title":"C++ Console App Quickstart","sidebarTitle":"Quickstart (Console)","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/cpp-console"},{"title":"C++","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/cpp"},{"title":"C++ Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/cpp"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/cpp"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"C++ V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/cpp-v4"},{"title":"C++ Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/cpp-dql"}]},{"title":"C++","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/cpp/Ditto/5.2.0/api-reference/","href":"/sdk/latest/api-reference/cpp"}]},{"group":"Rust","icon":{"style":"brands","name":"rust"},"pages":[{"title":"Rust Console App Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/rust-console"},{"title":"Rust","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/rust"},{"title":"Rust Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/rust"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/rust"},{"group":"Migration Guides","icon":{"style":"solid","name":"arrow-up-big-small"},"pages":[{"title":"Rust V4→V5 API Migration Guide","sidebarTitle":"V4→V5 Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/rust-v4"},{"title":"Rust Legacy→DQL Migration Guide","sidebarTitle":"DQL Migration Guide","icon":"arrow-up-big-small","iconType":"solid","href":"/sdk/latest/migration-guides/rust-dql"}]},{"title":"Rust","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/rust/Ditto/5.2.0/x86_64-unknown-linux-gnu/docs/dittolive_ditto/index.html","href":"/sdk/latest/api-reference/rust"}]},{"group":"Python (Preview)","icon":{"style":"brands","name":"python"},"pages":[{"title":"Python Console App Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/python"},{"title":"Python - Public Preview","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/python"},{"title":"Python Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/python"},{"title":"Python","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/python/dittolive-ditto/5.2.0.dev0/api-reference/ditto.html","href":"/sdk/latest/api-reference/python"}]},{"group":"Go (Preview)","icon":{"style":"brands","name":"golang"},"pages":[{"title":"Go Console App Quickstart","sidebarTitle":"Quickstart","icon":"rabbit-running","iconType":"solid","href":"/sdk/latest/quickstarts/go"},{"title":"Go - Public Preview","sidebarTitle":"Install Guide","icon":"book","iconType":"solid","href":"/sdk/latest/install-guides/go"},{"title":"Go Compatibility","sidebarTitle":"Compatibility","icon":"puzzle","iconType":"solid","href":"/sdk/latest/compatibility/go"},{"title":"Release Notes","sidebarTitle":"Release Notes","icon":"clipboard-list","iconType":"solid","mode":"wide","href":"/sdk/latest/release-notes-hub/go"},{"title":"Go","sidebarTitle":"API Docs","icon":"code","iconType":"solid","url":"https://software.ditto.live/go/Ditto/5.0.0-go-preview.3/docs/github.com/getditto/ditto-go-sdk/v5/ditto/index.html","href":"/sdk/latest/api-reference/go"}]}]},{"group":"Accessing Data","pages":[{"title":"Creating Documents","icon":"file-plus","href":"/sdk/latest/crud/create"},{"title":"Reading Documents","icon":"book-open-reader","href":"/sdk/latest/crud/read"},{"title":"Updating Documents","icon":"pen-to-square","href":"/sdk/latest/crud/update"},{"title":"Removing Documents","icon":"trash-can","href":"/sdk/latest/crud/delete"},{"title":"Reacting to Data Changes","icon":"eye","href":"/sdk/latest/crud/observing-data-changes"},{"title":"Large Binary Files","icon":"link","href":"/sdk/latest/crud/working-with-attachments"},{"title":"Working with EJSON","icon":"brackets-curly","iconType":"solid","href":"/sdk/latest/crud/working-with-ejson"},{"title":"Transactions","icon":"database","href":"/sdk/latest/crud/transactions"}]},{"group":"Syncing Data","icon":{"style":"solid","name":"rotate"},"pages":[{"title":"Managing Subscriptions","icon":"rotate","href":"/sdk/latest/sync/syncing-data"},{"title":"Sync Handling","icon":"rotate","iconType":"solid","href":"/best-practices/sync-handling"},{"group":"Monitoring Sync Status","icon":{"name":"file-check"},"pages":[{"title":"Tracking Local Commits","icon":"code-commit","href":"/sdk/latest/sync/tracking-local-commits"},{"title":"Tracking Cloud Sync Status","sidebarTitle":"Tracking Cloud Sync","icon":"cloud-check","href":"/sdk/latest/sync/cloud-sync-status"},{"title":"System Sync Collection Reference","sidebarTitle":"System Sync Collection","icon":"folder-gear","href":"/sdk/latest/sync/monitoring-sync-status"}]},{"title":"Configuring Collection Sync","sidebarTitle":"Configuring Collection Sync","icon":"telescope","href":"/sdk/latest/sync/sync-scopes"},{"title":"Tracing Document Propagation","icon":"chart-network","href":"/sdk/latest/sync/tracing-document-propagation"},{"title":"Device Storage Management","icon":"database","href":"/sdk/latest/sync/device-storage-management"},{"title":"Encryption at Rest","icon":"lock","href":"/sdk/latest/sync/encryption-at-rest"},{"title":"Data Streams","icon":"arrow-right-arrow-left","tag":"Preview","href":"/sdk/latest/sync/data-streams"}]},{"group":"Authentication and Authorization","pages":[{"title":"Authentication Providers","icon":"cloud","href":"/sdk/latest/auth-and-authorization/cloud-authentication"},{"title":"Authorizing Users","icon":"users","href":"/sdk/latest/auth-and-authorization/data-authorization"},{"title":"Certificate-Based Security","icon":"certificate","iconType":"solid","href":"/sdk/latest/auth-and-authorization/certificate-based-security"}]},{"group":"Managing the Mesh","pages":[{"title":"Using Mesh Presence","icon":"circle-nodes","href":"/sdk/latest/sync/using-mesh-presence"},{"title":"Customizing Transports","icon":"wrench","href":"/sdk/latest/sync/customizing-transport-configurations"},{"title":"Limiting Connections","icon":"scissors","href":"/sdk/latest/sync/handling-connection-requests"}]},{"group":"Deploying your App","pages":[{"group":"Configuring Hardware","icon":{"name":"network-wired"},"pages":[{"title":"Redundant Bluetooth","icon":"bluetooth","href":"/sdk/latest/sync/managing-redundant-bluetooth-le-connections"},{"title":"Bluetooth on Linux","icon":"linux","href":"/sdk/latest/deployment/bluetooth-on-linux"},{"title":"Local Area Network","icon":"wifi","href":"/sdk/latest/deployment/network-deployment"},{"title":"Optimizing Ditto Wi-Fi Aware for Your Android Hardware","sidebarTitle":"Android Wi-Fi Chipset Considerations","icon":"wifi","href":"/sdk/latest/deployment/wifi-aware-chipset-considerations"}]},{"title":"Testing","icon":"vial","href":"/sdk/latest/deployment/testing"},{"title":"Developer Tools","icon":"code","href":"/sdk/latest/deployment/integrate-ditto-tools-for-kotlin-swift-and-c-net-in-15-minutes"},{"title":"Remote Observability","icon":"eye","href":"/sdk/latest/deployment/device-observability-and-ditto-logs"},{"title":"Getting System Information","icon":"circle-info","href":"/sdk/latest/deployment/getting-system-information"},{"title":"Capturing Support Bundles","icon":"box-archive","href":"/sdk/latest/deployment/support-bundles"},{"title":"SDK Logging","icon":"file-invoice","description":"Learn how to configure and use the logging system in the Ditto SDK for monitoring and debugging your applications.","href":"/sdk/latest/deployment/logging"},{"title":"Optimizing Server Performance","icon":"server","href":"/sdk/latest/deployment/setting-routing-hints"},{"title":"Troubleshooting Guide","description":"This guide covers how to read the debug logs and debug your Ditto app.","icon":"wrench","iconType":"solid","href":"/sdk/latest/deployment/troubleshooting"}]}]},{"version":"v4","pages":[{"title":"v4","href":"/sdk/v4/deployment/setting-routing-hints"}]}]},{"tab":"Query Language (DQL)","icon":{"style":"regular","name":"file-magnifying-glass"},"pages":[{"title":"Query Language (DQL)","href":"/dql/dql"}]},{"tab":"Cloud Platform","icon":{"style":"regular","name":"cloud"},"pages":[{"title":"Cloud Platform","href":"/cloud/overview"}]},{"tab":"Ditto Server","hidden":true,"pages":[{"title":"Ditto Server","href":"/ditto-server/operator/operator-quickstart"}]},{"tab":"Ditto Edge Server","hidden":true,"pages":[{"title":"Ditto Edge Server","href":"/edge-server/overview"}]}]},"basePath":"","title":"Optimizing Server Performance - Ditto","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Dlc3Qr3h.js","dist-D2J8knkn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Dq9TQuNi.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}