Large Kafka message handling — offload to cloud storage
Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.
The for handling large messages will save the actual messages produced to into a cloud storage service. This helps to protect data or optimize storage in actual Kafka.We currently support:
Amazon S3 (Amazon Simple Storage Service) is a service offered by AWS (Amazon Web Services) that provides object storage through a web service interface.
Azure Blob Storage is a service offered by Microsoft Azure that provides blob storage.
The interceptor maintains a local on-disk cache at localDiskDirectory that mirrors objects stored in cloud storage (S3 or Azure Blob). The same path and behavior apply to both backends.
On produce. Every record ≥ minimumSizeInBytes is uploaded to cloud storage and a copy is written to localDiskDirectory so subsequent fetches do not need to re-download.
On fetch (cache miss). When a consumer fetches a record whose payload lives in cloud storage, Gateway downloads it and writes a copy to localDiskDirectory as well.
Each cached object is one file under localDiskDirectory/<topic>/<uuid>.
Files are removed only when their cache entry is evicted, which is triggered by cache activity (addition or removal). The eviction is determined based on two cases:
Count-based: more than localCacheItemSize entries are present (default 10000). The least-recently-used entry is evicted.
TTL-based: an entry is older than localCacheExpireAfterWriteInSeconds since it was written (default 1 hour). Expired entries are removed by subsequent cache activity, not by a wall-clock timer.
The cache has no byte-size limit. With the defaults, up to 10 000 × max-record-size can accumulate on disk before count-based eviction kicks in. If the volume is smaller than that, lower localCacheItemSize (and/or localCacheExpireAfterWriteInSeconds) to keep peak usage within the volume.There is no automatic cleanup on Gateway restart. Files written by a previous Gateway process remain on disk and continue to count against the volume until the cache is rebuilt and entries are evicted, or until they are removed manually.
If localDiskDirectory does not exist, Gateway attempts to create it at interceptor configuration time. If creation fails, the interceptor configuration is rejected.
If the directory exists but is not writable by the Gateway process, the interceptor configuration is rejected.
The Gateway process needs read and write permission for the directory and for files it creates inside it.
If localDiskDirectory is omitted, Gateway uses ${java.io.tmpdir}/myStorage/ (typically /tmp/myStorage/ because Gateway container runs Linux). For production deployments, set localDiskDirectory explicitly to a properly sized, persistent volume rather than relying on the system temp directory.
The S3 credentials default to managed identity. They will be overwritten if a specific basic credentials (accessKey and secretKey) or session credentials (accessKey, secretKey and sessionToken) are configured.For S3-compatible storage (MinIO, NetApp ONTAP, Dell ECS, Cloudflare R2), set disableChecksums to true.Otherwise, the AWS SDK sends a checksum in a form these backends do not accept, and uploads fail (the backend may report that the checksum header does not match).
Key
Type
Description
accessKey
string
S3 access key
secretKey
string
S3 secret key
sessionToken
string
S3 session token
bucketName
string
S3 bucket name
uri
string
S3 URI
region
string
S3 region
disableChecksums
boolean
Set to true for S3-compatible storage (MinIO, NetApp ONTAP, Dell ECS, Cloudflare R2) so uploads succeed; the default checksum format is not accepted by these backends. Default: false.
Each individual message that’s above the minimumSizeInBytes threshold will be saved in one file on Amazon S3, with credentials defaulting to managed identity:
When you combine encryption with LargeMessageHandlingPlugin, priority order matters in both directions.On produce, the encryption Interceptor must run before LargeMessageHandlingPlugin to ensure data offloaded to cloud storage is stored encrypted.On consume, DecryptPlugin must run after LargeMessageHandlingPlugin so the re-fetched ciphertext is decrypted before reaching the consumer.
If LargeMessageHandlingPlugin has a lower priority number than the encryption Interceptor, it offloads records before they’re encrypted. Cloud storage will hold plaintext.
Produce flow: records leave the client, EncryptPlugin runs first (priority 100) and encrypts configured fields or the full payload, then LargeMessageHandlingPlugin runs next (priority 200); if the encrypted record exceeds minimumSizeInBytes, it’s offloaded to cloud storage. The file in cloud storage contains ciphertext.
Consume flow: records leave the broker, LargeMessageHandlingPlugin runs first among the consume-path Interceptors (priority 200) and re-fetches the offloaded ciphertext from cloud storage into the local temp directory, then DecryptPlugin runs next (priority 300) and decrypts the ciphertext before the record reaches the consumer.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Conduktor Docs","colors":{"primary":"#09343C","light":"#BCFE68","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/conduktor/089vHQa2MA1IdMUE/logo/light.svg?fit=max\u0026auto=format\u0026n=089vHQa2MA1IdMUE\u0026q=85\u0026s=6435b57bce25a923f123614b7af5a6fb","dark":"https://mintcdn.com/conduktor/089vHQa2MA1IdMUE/logo/dark.svg?fit=max\u0026auto=format\u0026n=089vHQa2MA1IdMUE\u0026q=85\u0026s=22cf4534f017e989f9d2bbc5a9a24247"},"favicon":"https://mintcdn.com/conduktor/rNM3LyXxXzcOon_b/favicon.svg?fit=max\u0026auto=format\u0026n=rNM3LyXxXzcOon_b\u0026q=85\u0026s=7ac4ffcee23263ea654f9cdc131535cf","navbar":{"primary":{"type":"button","label":"Get started","href":"https://conduktor.io/get-started?utm_source=docs\u0026utm_medium=referral\u0026src=docs-navbar"}},"footer":{"socials":{"slack":"https://conduktor.io/slack","github":"https://github.com/conduktor","linkedin":"https://www.linkedin.com/company/conduktor","youtube":"https://www.youtube.com/channel/UCTr4J1unmW5QKJ14M6aPYdQ","x":"https://x.com/getconduktor"},"links":[{"header":"Product","items":[{"label":"Console","href":"https://conduktor.io/console?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Gateway","href":"https://conduktor.io/gateway?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Gateway Community Edition","href":"https://conduktor.io/gateway/passthrough?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Pricing","href":"https://conduktor.io/pricing?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Architecture","href":"https://conduktor.io/architecture?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Demo Center","href":"https://conduktor.io/demo-center?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Product Releases","href":"https://conduktor.io/product-releases?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"}]},{"header":"Resources","items":[{"label":"Kafkademy","href":"https://www.conduktor.io/kafka?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Blog","href":"https://conduktor.io/blog?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Glossary","href":"https://conduktor.io/glossary?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Customer Stories","href":"https://conduktor.io/customer-stories?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Ebooks","href":"https://conduktor.io/resources/hub?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"}]},{"header":"Company","items":[{"label":"About","href":"https://conduktor.io/about?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Careers","href":"https://conduktor.io/careers?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Contact","href":"https://conduktor.io/contact?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Events","href":"https://conduktor.io/events?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"}]},{"header":"Integrations","items":[{"label":"AWS","href":"https://conduktor.io/partners/aws?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Cloudera","href":"https://conduktor.io/partners/cloudera?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Confluent","href":"https://conduktor.io/partners/confluent?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"},{"label":"Snowflake","href":"https://conduktor.io/partners/snowflake?utm_source=docs\u0026utm_medium=referral\u0026src=docs-footer"}]}]},"seo":{"metatags":{"og:image":"https://docs.conduktor.io/images/conduktor-overview.png","og:image:alt":"Conduktor — Kafka operations and governance platform","og:site_name":"Conduktor Docs","og:type":"website","og:locale":"en_US","robots":"index, follow","googlebot":"index, follow","twitter:card":"summary_large_image","twitter:site":"@getconduktor","twitter:image":"https://docs.conduktor.io/images/conduktor-overview.png"}},"integrations":{"gtm":{"tagId":"GTM-N6ZLDDSP"}},"banner":{"content":"Introducing Conduktor Agents: AI Teammates for Your Kafka Platform [Read the announcement →](https://www.conduktor.io/blog/conduktor-agents?src=docs-banner\u0026utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=site-banner)","dismissible":true},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page does not exist or has moved.\n\nHead back to the [Conduktor docs home](/) or use the search bar above.\n\nIf you followed a broken link, [let us know](https://support.conduktor.io/hc/en-gb/requests/new?ticket_form_id=17438363566609)."}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"conduktor","hasAudioNarration":false,"actualSubdomain":"conduktor","customDomains":["docs.conduktor.io"],"gitSource":{"type":"github","owner":"conduktor","repo":"conduktor-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aef613a69e61846fb380c56","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Deploy and configure","count":36},{"language":"default","tag":"Use and maintain","count":32},{"language":"default","tag":"Tutorials","count":21},{"language":"default","tag":"Reference","count":19},{"language":"default","tag":"Get started","count":13},{"language":"default","tag":"Deploy Gateway","count":13},{"language":"default","tag":"Use cases","count":12},{"language":"default","tag":"Gateway","count":11},{"language":"default","tag":"Initial setup","count":11},{"language":"default","tag":"Configure","count":11}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":false,"email":"support@conduktor.io"}},"basePath":"","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}],"starterQuestions":[{"_id":"69b313ccbe42b087e0007e7a","deploymentId":"68681972295343c9858c8f5c","questionText":"How do I set up Virtual Clusters to isolate Kafka access?","status":"active","generatedBy":"manual","createdAt":"2026-03-12T19:28:12.021Z","updatedAt":"2026-03-12T19:28:12.021Z","__v":0},{"_id":"69b313c7be42b087e0007e6f","deploymentId":"68681972295343c9858c8f5c","questionText":"How do I enforce data quality rules on Kafka topics?","status":"active","generatedBy":"manual","createdAt":"2026-03-12T19:28:07.485Z","updatedAt":"2026-03-12T19:28:07.485Z","__v":0},{"_id":"68ed239420829a4e927f4f0a","deploymentId":"68681972295343c9858c8f5c","questionText":"How do I encrypt my Kafka data with Conduktor?","status":"active","generatedBy":"manual","createdAt":"2025-10-13T16:06:44.497Z","updatedAt":"2026-03-12T19:28:01.805Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".mdx-content,[data-mode=\"custom\"] .container{max-width:1024px!important;margin-right:auto;margin-left:auto;margin-top:2rem}@media (max-width: 768px){.mdx-content,[data-mode=\"custom\"] .container{padding:0 0.75rem}}#topbar-cta-button>a>span{background-color:#09343C!important;color:white}.dark #topbar-cta-button>a>span{background-color:#496E78!important}.img.nav-logo{height:32px}.link-list a{position:relative;transition:all 0.2s ease;padding-right:20px}.link-list a:hover{color:#09343C;transform:translateX(4px);text-decoration:underline}.dark .link-list a:hover{color:#BCFE68}.link-list a:after{content:\"\";position:absolute;right:0;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:all 0.2s ease;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat}.link-list a:hover:after{opacity:1}.dark .link-list a:after{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E\")}.spacing-sm{margin:10px 0}.spacing-md{margin:20px 0}.spacing-lg{margin:40px 0}.spacing-xl{margin:60px 0}.mt-sm{margin-top:10px}.mt-md{margin-top:20px}.mt-lg{margin-top:40px}.mb-sm{margin-bottom:10px}.mb-md{margin-bottom:20px}.mb-lg{margin-bottom:40px}h1{color:#09343C;font-size:2.5rem!important;font-weight:700!important;line-height:1.2!important;margin-bottom:0.5rem!important;margin-top:3rem!important}h2,h3{color:#09343C}.home-section-heading{font-size:1.5rem!important;font-weight:700!important;margin-top:2.5rem!important;margin-bottom:0.75rem!important;color:#09343C}.dark .home-section-heading{color:white!important}.dark h1{color:white;font-size:2.5rem!important;font-weight:700!important;line-height:1.2!important;margin-bottom:0.5rem!important;margin-top:3rem!important}.eyebrow{display:none!important}.mt-2.text-lg.prose{color:#6E8287!important}.dark .mt-2.text-lg.prose{color:#8FAAB0!important}.dark h2,.dark h3{color:white}table td{padding:16px!important;border-left:1px solid #eeedef}.dark table td{border-left:1px solid rgb(255, 255, 255, 0.05)}table td:last-child{border-right:1px solid #eeedef}.dark table td:last-child{border-right:1px solid rgb(255, 255, 255, 0.05)}table tr{border-left:1px solid #eeedef;border-radius:20px}.dark table tr{border-left:1px solid rgb(255, 255, 255, 0.05)}table tr:first-child{border-top:1px solid #eeedef}.dark table tr:first-child{border-top:1px solid rgb(255, 255, 255, 0.05)}table tr:last-child{border-bottom:1px solid #eeedef;border-right:1px solid #eeedef}.dark table tr:last-child{border-bottom:1px solid rgb(255, 255, 255, 0.05);border-right:1px solid rgb(255, 255, 255, 0.05)}table th{min-width:auto!important;border-right:1px solid #eeedef}.dark table th{border-right:1px solid rgb(255, 255, 255, 0.05)}table th:last-child{border-right:none}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding:8px 16px;text-align:left;vertical-align:middle}code{white-space:pre-wrap!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.sidebar-group a:has(svg){flex-direction:row-reverse!important}.sidebar-group-header:has(.sidebar-group-icon){width:100%!important;padding-right:0.75rem!important}.sidebar-group-header .sidebar-group-icon{order:2!important;margin-left:auto!important}.feature-label .tooltip{text-decoration:none}.feature-label a.link{border-bottom:none}.feature-label+.feature-label{margin-left:0.5rem}.card-group .card{transition:transform 0.3s ease, border-color 0.4s ease!important;border-radius:16px!important;background:rgba(9, 52, 60, 0.03)!important}.card-group .card:hover{transform:translateY(-4px)!important;box-shadow:none!important;border-color:#09343C}.dark .card-group .card{border-color:#09343C;background:#072024!important}.dark .card-group .card:hover{border-color:#BCFE68}.tabs-container,.tab-container,[data-tabs]{display:block!important}.tabs-container p,.tab-container p,[data-tabs] p,.tabs-container li,.tab-container li,[data-tabs] li,.tabs-container div,.tab-container div,[data-tabs] div{font-weight:normal}.tabs-container strong,.tab-container strong,[data-tabs] strong,.tabs-container b,.tab-container b,[data-tabs] b{font-weight:bold}.toc a,#table-of-contents-content a{border-left:2px solid rgba(0, 0, 0, 0.05)!important}.toc-item>a,#table-of-contents-content .toc-item>a{padding-left:calc(var(--toc-padding-left, 1rem) + var(--toc-focus-padding, 0rem))!important}.toc-item[data-depth=\"0\"]>a,#table-of-contents-content .toc-item[data-depth=\"0\"]>a{--toc-padding-left: 1rem !important}.toc-item[data-depth=\"1\"]>a,#table-of-contents-content .toc-item[data-depth=\"1\"]>a{--toc-padding-left: 2rem !important}.toc-item[data-depth=\"2\"]>a,#table-of-contents-content .toc-item[data-depth=\"2\"]>a{--toc-padding-left: 3rem !important}.toc-item[data-depth=\"0\"]>a,#table-of-contents-content .toc-item[data-depth=\"0\"]>a{font-size:0.9375rem!important;font-weight:600!important;opacity:1!important;margin-top:0.5rem!important;margin-bottom:0.25rem!important}.toc-item[data-depth=\"1\"]>a,#table-of-contents-content .toc-item[data-depth=\"1\"]>a{font-size:0.875rem!important;font-weight:400!important;opacity:0.8!important;margin-top:0.125rem!important;margin-bottom:0.125rem!important}.toc-item[data-depth=\"2\"]>a,#table-of-contents-content .toc-item[data-depth=\"2\"]>a{font-size:0.875rem!important;font-weight:400!important;opacity:0.8!important;margin-top:0.125rem!important;margin-bottom:0.125rem!important}.dark .toc-item[data-depth=\"1\"]>a,.dark .toc-item[data-depth=\"2\"]>a,.dark #table-of-contents-content .toc-item[data-depth=\"1\"]>a,.dark #table-of-contents-content .toc-item[data-depth=\"2\"]>a{opacity:0.7!important}.dark .toc a,.dark #table-of-contents-content a{border-left-color:rgba(255, 255, 255, 0.1)!important}.toc a.text-primary,#table-of-contents-content a.text-primary{border-left-width:3px!important;border-left-style:solid!important;border-left-color:#09343C!important}.dark .toc a.text-primary,.dark #table-of-contents-content a.text-primary{border-left-color:#BCFE68!important}.toc a.border-primary,#table-of-contents-content a.border-primary{border-left-width:3px!important;border-left-color:#09343C!important}.dark .toc a.border-primary,.dark #table-of-contents-content a.border-primary{border-left-color:#BCFE68!important}.dh{--dh-ink: #09343C;--dh-text: #3b4f54;--dh-muted: #64777b;--dh-link: #15803D;--dh-surface: #ffffff;--dh-surface-soft: #f4f6f7;--dh-border: #e4e8ea;--dh-border-hover: #09343C;--dh-accent: #BCFE68;--dh-shadow: 0 1px 2px rgba(9, 52, 60, 0.04), 0 12px 32px -12px rgba(9, 52, 60, 0.14);--dh-mark-bg: #09343C;--dh-mark-fg: #BCFE68;max-width:1200px;margin:0 auto;padding:0 32px 96px;color:var(--dh-text);line-height:1.6}.dark .dh{--dh-ink: #f1f5f9;--dh-text: #cbd5e1;--dh-muted: #94a3b8;--dh-link: #BCFE68;--dh-surface: #161b22;--dh-surface-soft: rgba(255, 255, 255, 0.05);--dh-border: rgba(255, 255, 255, 0.12);--dh-border-hover: #BCFE68;--dh-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 12px 32px -12px rgba(0, 0, 0, 0.6);--dh-mark-bg: #0d3a42}[data-mode=\"custom\"] .container:has(.dh),.mdx-content:has(.dh){max-width:100%!important;padding:0!important;margin-top:0!important}.dh-hero{display:grid;grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr);gap:64px;align-items:center;padding:72px 0 64px;border-bottom:1px solid var(--dh-border)}.dh .dh-h1{margin:0!important;font-size:clamp(2.2rem, 3.6vw, 3rem)!important;font-weight:700;line-height:1.08!important;letter-spacing:-0.025em;color:var(--dh-ink)}.dh .dh-h1 em{font-style:italic;color:var(--dh-link)}.dh .dh-lead{max-width:56ch;margin:20px 0 0;font-size:1.08rem;color:var(--dh-text)}.dh .dh-hint{margin:24px 0 0;font-size:0.85rem;color:var(--dh-muted)}.dh .dh-hint kbd{display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid var(--dh-border);border-radius:5px;background:var(--dh-surface-soft);box-shadow:inset 0 -1px 0 var(--dh-border);color:var(--dh-ink);font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.75rem;text-align:center}.dh-products{display:flex;flex-direction:column;padding:6px;border:1px solid var(--dh-border);border-radius:16px;background:var(--dh-surface);box-shadow:var(--dh-shadow)}.dh .dh-product{display:grid;grid-template-columns:36px minmax(0, 1fr) auto;grid-template-areas:\"mark name arrow\"\n \"mark desc arrow\";column-gap:14px;align-items:center;padding:14px 16px;border-radius:11px;text-decoration:none;transition:background 0.15s ease}.dh .dh-product+.dh-product{border-top:1px solid var(--dh-border)}.dh .dh-product:hover{background:var(--dh-surface-soft)}.dh-product-mark{grid-area:mark;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:var(--dh-mark-bg);color:var(--dh-mark-fg)}.dh-product-mark svg{width:18px;height:18px}.dh-product-name{grid-area:name;font-size:1rem;font-weight:600;color:var(--dh-ink)}.dh-product-desc{grid-area:desc;font-size:0.85rem;color:var(--dh-muted)}.dh .dh-product::after{content:'→';grid-area:arrow;color:var(--dh-muted);transition:color 0.15s ease, transform 0.15s ease}.dh .dh-product:hover::after{color:var(--dh-link);transform:translateX(2px)}.dh .dh-products-footer{margin-top:2px;padding:12px 16px 10px;border-top:1px solid var(--dh-border);font-size:0.88rem;font-weight:500;color:var(--dh-link);text-decoration:none}.dh .dh-products-footer:hover{text-decoration:underline;text-underline-offset:3px}.dh-section{margin-top:72px}.dh .dh-h2{margin:0 0 20px;font-size:1.35rem;font-weight:650;letter-spacing:-0.01em;color:var(--dh-ink)}.dh-audiences{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px}.dh-audience{padding:24px 28px;border:1px solid var(--dh-border);border-radius:14px;background:var(--dh-surface)}.dh .dh-audience-title{margin:0;font-size:1.05rem;font-weight:650;color:var(--dh-ink)}.dh .dh-audience-desc{margin:2px 0 16px;font-size:0.88rem;color:var(--dh-muted)}.dh .dh-rows{list-style:none;margin:0;padding:0}.dh .dh-rows li{margin:0;padding:0;border-top:1px solid var(--dh-border)}.dh .dh-rows li:first-child{border-top:0}.dh .dh-rows li::before{content:none}.dh .dh-rows a{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:0.95rem;font-weight:500;color:var(--dh-ink);text-decoration:none;border-bottom:0;transition:color 0.15s ease}.dh .dh-rows a::after{content:'→';color:var(--dh-muted);transition:color 0.15s ease, transform 0.15s ease}.dh .dh-rows a:hover{color:var(--dh-link)}.dh .dh-rows a:hover::after{color:var(--dh-link);transform:translateX(2px)}.dh .dh-welcome{max-width:72ch;margin:-6px 0 20px;font-size:1rem;color:var(--dh-text)}.dh .dh-welcome strong{color:var(--dh-ink);font-weight:650}.dh .dh-welcome a{color:var(--dh-link);font-weight:600;text-decoration:none;border-bottom:0}.dh .dh-welcome a:hover{text-decoration:underline;text-underline-offset:3px}.dh .dh-usecase{display:flex;flex-direction:column;gap:8px;min-width:0;padding:22px 24px;border:1px solid var(--dh-border);border-radius:14px;background:var(--dh-surface);text-decoration:none;transition:border-color 0.15s ease, box-shadow 0.15s ease}.dh .dh-usecase:hover{border-color:var(--dh-border-hover);box-shadow:var(--dh-shadow)}.dh-usecase-products{display:flex;align-items:center;gap:6px;font-size:0.78rem;font-weight:500;color:var(--dh-muted)}.dh-mini-mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:var(--dh-mark-bg);color:var(--dh-mark-fg)}.dh-mini-mark svg{width:11px;height:11px}.dh-mini-mark--optional{background:transparent;border:1px dashed var(--dh-muted);color:var(--dh-muted)}.dh-usecase-title{margin-top:4px;font-size:1.05rem;font-weight:650;line-height:1.3;color:var(--dh-ink)}.dh-usecase-desc{font-size:0.9rem;line-height:1.5;color:var(--dh-muted)}.dh-usecase-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px}.dh-usecase-features span{padding:2px 9px;border:1px solid var(--dh-border);border-radius:999px;background:var(--dh-surface-soft);color:var(--dh-text);font-size:0.75rem;line-height:1.5}.dh-grid{display:grid;gap:14px}.dh-grid--3{grid-template-columns:repeat(3, minmax(0, 1fr))}.dh-grid--2{grid-template-columns:repeat(2, minmax(0, 1fr))}.dh .dh-tile{display:flex;flex-direction:column;gap:4px;min-width:0;padding:18px 20px;border:1px solid var(--dh-border);border-radius:12px;background:var(--dh-surface);text-decoration:none;transition:border-color 0.15s ease, box-shadow 0.15s ease}.dh .dh-tile:hover{border-color:var(--dh-border-hover);box-shadow:var(--dh-shadow)}.dh-tile-title{font-size:0.98rem;font-weight:600;color:var(--dh-ink)}.dh .dh-section-lead{max-width:64ch;margin:-8px 0 20px;color:var(--dh-text)}.dh .dh-grid--2 .dh-tile{gap:8px;padding:22px 24px}.dh-tile-desc{font-size:0.9rem;line-height:1.5;color:var(--dh-muted)}.dh .dh-grid--2 .dh-snippet{margin-top:6px}.dh-tile-cta{margin-top:6px;font-size:0.88rem;font-weight:600;color:var(--dh-link)}.dh-tile:hover .dh-tile-cta{text-decoration:underline;text-underline-offset:3px}.dh-tile-title::after{content:none}.dh .dh-snippet{display:block;margin-top:auto;padding:6px 10px;border:0;border-radius:6px;background:var(--dh-surface-soft);color:var(--dh-ink);font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.72rem;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;word-break:normal!important}.dh-section--feature{margin-top:48px}.dh-feature{display:grid;grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);align-items:center;gap:32px;overflow:hidden;padding:32px 40px;border:1px solid var(--dh-border);border-radius:16px;background:var(--dh-surface);box-shadow:var(--dh-shadow)}.dh .dh-feature-kicker{margin:0 0 8px;font-size:0.78rem;font-weight:650;letter-spacing:0.06em;text-transform:uppercase;color:var(--dh-link)}.dh .dh-feature .dh-h2{margin-bottom:12px}.dh .dh-feature-lead{max-width:52ch;margin:0 0 20px;color:var(--dh-text)}.dh .dh-feature-shot{display:block;width:100%;margin:0;border:1px solid var(--dh-border);border-radius:10px}.dh-help{display:grid;grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr);align-items:stretch;overflow:hidden;border:1px solid var(--dh-border);border-radius:16px;background:var(--dh-surface);box-shadow:var(--dh-shadow)}.dh-help-text{display:flex;flex-direction:column;justify-content:center;padding:40px}.dh .dh-help .dh-h2{margin-bottom:12px}.dh .dh-help-lead{max-width:48ch;margin:0 0 24px;color:var(--dh-text)}.dh-help-actions{display:flex;flex-wrap:wrap;gap:10px}.dh .dh-help-photo{display:block;width:100%;height:100%;min-height:280px;margin:0;border-radius:0;object-fit:cover}.dh .dh-btn{display:inline-block;padding:9px 18px;border:1px solid transparent;border-radius:999px;font-size:0.92rem;font-weight:600;line-height:1.3;text-decoration:none;transition:background 0.15s ease, border-color 0.15s ease}.dh .dh-btn--primary{background:var(--dh-mark-bg);color:var(--dh-mark-fg)}.dh .dh-btn--primary:hover{background:var(--dh-ink)}.dark .dh .dh-btn--primary:hover{background:var(--dh-mark-bg);border-color:var(--dh-border-hover)}.dh .dh-btn--secondary{border-color:var(--dh-border);background:var(--dh-surface);color:var(--dh-ink)}.dh .dh-btn--secondary:hover{border-color:var(--dh-border-hover)}.dh .dh-more{margin:20px 0 0;font-size:0.88rem;color:var(--dh-muted)}.dh .dh-more a{color:var(--dh-text);text-decoration:none;border-bottom:1px solid var(--dh-border)}.dh .dh-more a:hover{color:var(--dh-link);border-bottom-color:currentColor}@media (hover: none){.dh .dh-hint{display:none}}@media (max-width: 1024px){.dh-grid--3{grid-template-columns:repeat(2, minmax(0, 1fr))}.dh-hero{grid-template-columns:1fr;gap:40px;padding-top:104px}}@media (max-width: 900px){.dh{padding:0 20px 72px}.dh-help{grid-template-columns:1fr}.dh-feature{grid-template-columns:1fr;padding:28px}.dh .dh-help-photo{min-height:220px;max-height:280px}.dh-help-text{padding:28px}}@media (max-width: 600px){.dh-audiences,.dh-grid--3,.dh-grid--2{grid-template-columns:1fr}}a.nav-tabs-item[href^=\"https://www.conduktor.io/kafka\"]{margin-left:0.625rem;padding-left:1.25rem}a.nav-tabs-item[href^=\"https://www.conduktor.io/kafka\"]::before{content:\"\";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:16px;background:rgba(9, 52, 60, 0.15)}.dark a.nav-tabs-item[href^=\"https://www.conduktor.io/kafka\"]::before{background:rgba(255, 255, 255, 0.15)}a.nav-tabs-item[href^=\"https://www.conduktor.io/kafka\"]::after{content:\"\";display:inline-block;width:12px;height:12px;opacity:0.55;background-repeat:no-repeat;background-size:contain;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2309343C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E\")}.dark a.nav-tabs-item[href^=\"https://www.conduktor.io/kafka\"]::after{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E\")}#changelog-filters{display:none!important}.cdk-release-index{--cdk-ri-fg: #09343c;--cdk-ri-muted: #667;--cdk-ri-border: #e5e7e8;--cdk-ri-bg: #fff;--cdk-ri-hover: #f5f7f8;--cdk-ri-heading: #09343c;--cdk-ri-label: #3e4040;font-size:0.8125rem;color:var(--cdk-ri-fg)}.dark .cdk-release-index{--cdk-ri-fg: #e8edee;--cdk-ri-muted: #9aa5a8;--cdk-ri-border: rgba(255, 255, 255, 0.12);--cdk-ri-bg: transparent;--cdk-ri-hover: rgba(255, 255, 255, 0.06);--cdk-ri-heading: #fff;--cdk-ri-label: #c3cbcd}.cdk-ri-group{margin-bottom:0.625rem}.cdk-ri-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;margin-bottom:0.25rem;padding:0 0.375rem}.cdk-ri-group-title{margin:0;font-size:0.875rem;font-weight:600;color:var(--cdk-ri-heading)}.cdk-ri-groups ul{list-style:none;margin:0;padding:0}.cdk-ri-groups li{margin:0;padding:0}.cdk-ri-groups a{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding:0.1875rem 0.375rem 0.1875rem 1.5rem;border-radius:0.75rem;color:var(--cdk-ri-fg);text-decoration:none;border:0}.cdk-ri-groups a:hover{background:var(--cdk-ri-hover)}.cdk-ri-version{font-variant-numeric:tabular-nums}.cdk-ri-item{position:relative}.cdk-ri-fold{position:absolute;top:50%;left:0.125rem;z-index:1;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;background:none;border:0;border-radius:0.25rem;transform:translateY(-50%);cursor:pointer}.cdk-ri-fold::before{content:\"\";width:0.3125rem;height:0.3125rem;border-right:1.5px solid var(--cdk-ri-muted);border-bottom:1.5px solid var(--cdk-ri-muted);transform:rotate(-45deg) translate(-0.0625rem, -0.0625rem);transition:transform 0.15s ease}.cdk-ri-fold[aria-expanded=\"true\"]::before{transform:rotate(45deg) translate(-0.0625rem, -0.0625rem)}.cdk-ri-fold:hover::before{border-color:var(--cdk-ri-fg)}.cdk-ri-date{font-size:0.6875rem;color:var(--cdk-ri-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.cdk-ri-more{flex:none;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;margin:0 -0.3125rem 0 0;padding:0;background:none;border:0;border-radius:0.25rem;cursor:pointer}.cdk-ri-more::before{content:\"\";width:0.3125rem;height:0.3125rem;border-right:1.5px solid var(--cdk-ri-muted);border-bottom:1.5px solid var(--cdk-ri-muted);transform:rotate(45deg) translate(-0.0625rem, -0.0625rem);transition:transform 0.15s ease}.cdk-ri-more[aria-expanded=\"true\"]::before{transform:rotate(225deg) translate(-0.0625rem, -0.0625rem)}.cdk-ri-more:hover::before{border-color:var(--cdk-ri-fg)}.cdk-ri-sidebar{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--cdk-ri-border)}.cdk-ri-sidebar .cdk-ri-group-head{padding:0 0.75rem 0 1rem}.cdk-ri-sidebar .cdk-ri-groups a{padding:0.375rem 0.75rem 0.375rem 1.875rem}.cdk-ri-sidebar .cdk-ri-fold{left:0.5rem}.cdk-ri-inline{margin:0 0 2rem;padding:1rem 1.125rem;background:var(--cdk-ri-bg);border:1px solid var(--cdk-ri-border);border-radius:0.5rem}.cdk-ri-inline .cdk-ri-groups{display:grid;grid-template-columns:repeat(auto-fill, minmax(11rem, 1fr));gap:0.75rem 1.25rem;max-height:22rem;overflow-y:auto}.cdk-ri-compact{margin-bottom:1.5rem;padding:0.5rem 0.75rem}.cdk-ri-summary{display:flex;align-items:center;gap:0.375rem;padding:0.125rem 0;font-size:0.875rem;font-weight:500;color:var(--cdk-ri-label);cursor:pointer;list-style:none}.cdk-ri-summary::-webkit-details-marker{display:none}.cdk-ri-summary::before{content:\"\";flex:none;width:0.4375rem;height:0.4375rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform 0.15s ease}.cdk-ri-details[open]>.cdk-ri-summary::before{transform:rotate(45deg)}.cdk-ri-details[open]>.cdk-ri-summary{margin-bottom:0.625rem}.cdk-ri-compact .cdk-ri-groups{max-height:none;overflow:visible}"}],"page":{"pagePath":"guide/use-cases/manage-large-messages","slug":"/guide/use-cases/manage-large-messages","pageMetadata":{"title":"Large Kafka message handling — offload to cloud storage","description":"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.","sidebarTitle":"Manage large messages","href":"/guide/use-cases/manage-large-messages"},"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: \"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\"\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];const FeatureLabel=({type,definition=false})=>{const _components={a:`a`,..._provideComponents()},{Badge,Tooltip}=_components;if(!Badge)_missingMdxReference(`Badge`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);const labels={enterprise:{name:`Enterprise`,color:`blue`,icon:`sparkle`,definition:`Requires a Conduktor Enterprise license.`},preview:{name:`Preview`,color:`purple`,icon:`eye`,definition:`On its way to general availability (GA). Try it now. It may change before GA and isn't recommended for production yet.`},experimental:{name:`Experimental`,color:`orange`,icon:`flask`,definition:`An idea we're testing. Try it in development and test environments. It isn't recommended for production and isn't covered by Conduktor Support.`},deprecated:{name:`Deprecated`,color:`gray`,icon:`box-archive`,definition:`Still works, but will be removed in a future version. The page where it appears says when it's removed and what to use instead.`}};const label=labels[type];if(definition){return label.definition}const href=`/guide/reference/feature-labels#${type}`;return _jsx(`span`,{className:`feature-label`,children:_jsx(Tooltip,{headline:label.name,tip:label.definition,cta:`About feature labels`,href,children:_jsx(_components.a,{href,children:_jsx(Badge,{stroke:true,color:label.color,icon:label.icon,size:`lg`,children:label.name})})})})};function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Table,Tabs,Tooltip,Warning,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_MdxComponentBoundary,{name:`FeatureLabel`,children:_jsx(FeatureLabel,{type:`enterprise`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`FeatureLabel`,children:_jsx(FeatureLabel,{type:`experimental`})}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(Tooltip,{tip:`Conduktor Interceptors are Gateway plugins that transform and manipulate data.`,children:`Interceptor`}),` for handling large messages will save the actual messages produced to `,_jsx(Tooltip,{tip:`A Kafka proxy that deploys extensible plugins for encryption, filtering, and data processing.`,children:`Gateway`}),` into a cloud storage service. This helps to protect data or optimize storage in actual Kafka.`]}),`\n`,_jsx(_components.p,{children:`We currently support:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Amazon S3`}),` (Amazon Simple Storage Service) is a service offered by AWS (Amazon Web Services) that provides object storage through a web service interface.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Azure Blob Storage`}),` is a service offered by Microsoft Azure that provides blob storage.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Key`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Default`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`topic`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`.*`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Topics matching this regex have the Interceptor applied.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`s3Config`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`#amazon-s3`,children:`S3`})}),_jsx(_components.td,{style:{textAlign:`left`}}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Amazon S3 configuration. Mutually exclusive with `,_jsx(_components.code,{children:`azureConfig`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`azureConfig`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`#azure-blob-storage`,children:`Azure`})}),_jsx(_components.td,{style:{textAlign:`left`}}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Azure Blob Storage configuration. Mutually exclusive with `,_jsx(_components.code,{children:`s3Config`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`minimumSizeInBytes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`int`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:_jsx(_components.code,{children:`0`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Records with `,_jsx(_components.code,{children:`sizeInBytes ≥ minimumSizeInBytes`}),` are offloaded to cloud storage. Smaller records pass through unchanged.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`localDiskDirectory`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:\"${java.io.tmpdir}/myStorage/\"})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Path to the local on-disk cache used for both produce-time mirroring and fetch-time caching. See `,_jsx(_components.a,{href:`#local-disk-cache`,children:`Local disk cache`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`localCacheItemSize`}),_jsx(_components.td,{style:{textAlign:`left`},children:`int`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:_jsx(_components.code,{children:`10000`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Maximum number of cached files (entries, not bytes). Oldest entries are evicted past this count.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`localCacheExpireAfterWriteInSeconds`}),_jsx(_components.td,{style:{textAlign:`left`},children:`long`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:_jsx(_components.code,{children:`3600`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Time-to-live since the cache entry was written. Expired entries are removed (and their files deleted) lazily on subsequent activity.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`local-disk-cache`,children:`Local disk cache`}),`\n`,_jsxs(_components.p,{children:[`The interceptor maintains a local on-disk cache at `,_jsx(_components.code,{children:`localDiskDirectory`}),` that mirrors objects stored in cloud storage (S3 or Azure Blob). The same path and behavior apply to both backends.`]}),`\n`,_jsx(Heading,{level:`4`,id:`when-files-are-written-to-disk`,children:`When files are written to disk`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On produce.`}),` Every record `,_jsx(_components.code,{children:`≥ minimumSizeInBytes`}),` is uploaded to cloud storage and a copy is written to `,_jsx(_components.code,{children:`localDiskDirectory`}),` so subsequent fetches do not need to re-download.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On fetch (cache miss).`}),` When a consumer fetches a record whose payload lives in cloud storage, Gateway downloads it and writes a copy to `,_jsx(_components.code,{children:`localDiskDirectory`}),` as well.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Each cached object is one file under `,_jsx(_components.code,{children:`localDiskDirectory/\u003ctopic>/\u003cuuid>`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`when-files-are-removed`,children:`When files are removed`}),`\n`,_jsx(_components.p,{children:`Files are removed only when their cache entry is evicted, which is triggered by cache activity (addition or removal). The eviction is determined based on two cases:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Count-based`}),`: more than `,_jsx(_components.code,{children:`localCacheItemSize`}),` entries are present (default `,_jsx(_components.code,{children:`10000`}),`). The least-recently-used entry is evicted.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL-based`}),`: an entry is older than `,_jsx(_components.code,{children:`localCacheExpireAfterWriteInSeconds`}),` since it was written (default `,_jsx(_components.code,{children:`1 hour`}),`). Expired entries are removed by subsequent cache activity, not by a wall-clock timer.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The cache has `,_jsx(_components.strong,{children:`no byte-size limit`}),`. With the defaults, up to `,_jsx(_components.code,{children:`10 000 × max-record-size`}),` can accumulate on disk before count-based eviction kicks in. If the volume is smaller than that, lower `,_jsx(_components.code,{children:`localCacheItemSize`}),` (and/or `,_jsx(_components.code,{children:`localCacheExpireAfterWriteInSeconds`}),`) to keep peak usage within the volume.`]}),`\n`,_jsxs(_components.p,{children:[`There is `,_jsx(_components.strong,{children:`no automatic cleanup on Gateway restart`}),`. Files written by a previous Gateway process remain on disk and continue to count against the volume until the cache is rebuilt and entries are evicted, or until they are removed manually.`]}),`\n`,_jsx(Heading,{level:`4`,id:`sizing-the-volume`,children:`Sizing the volume`}),`\n`,_jsx(_components.p,{children:`As a starting point, size the volume so that`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`localCacheItemSize × expected_max_record_size + headroom ≤ volume_capacity`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`If the volume is constrained, lower `,_jsx(_components.code,{children:`localCacheItemSize`}),` first. This is the only setting that strictly bounds the worst-case file count.`]}),`\n`,_jsx(Heading,{level:`4`,id:`permissions-and-startup-behavior`,children:`Permissions and startup behavior`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`If `,_jsx(_components.code,{children:`localDiskDirectory`}),` does not exist, Gateway attempts to create it at interceptor configuration time. If creation fails, the interceptor configuration is rejected.`]}),`\n`,_jsx(_components.li,{children:`If the directory exists but is not writable by the Gateway process, the interceptor configuration is rejected.`}),`\n`,_jsx(_components.li,{children:`The Gateway process needs read and write permission for the directory and for files it creates inside it.`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`default-location`,children:`Default location`}),`\n`,_jsxs(_components.p,{children:[`If `,_jsx(_components.code,{children:`localDiskDirectory`}),` is omitted, Gateway uses `,_jsx(_components.code,{children:\"${java.io.tmpdir}/myStorage/\"}),` (typically `,_jsx(_components.code,{children:`/tmp/myStorage/`}),` because Gateway container runs Linux). For production deployments, set `,_jsx(_components.code,{children:`localDiskDirectory`}),` explicitly to a properly sized, persistent volume rather than relying on the system temp directory.`]}),`\n`,_jsx(Heading,{level:`3`,id:`amazon-s3`,children:`Amazon S3`}),`\n`,_jsxs(_components.p,{children:[`The S3 credentials default to managed identity. They will be overwritten if a specific `,_jsx(_components.code,{children:`basic credentials`}),` (`,_jsx(_components.code,{children:`accessKey`}),` and `,_jsx(_components.code,{children:`secretKey`}),`) or `,_jsx(_components.code,{children:`session credentials`}),` (`,_jsx(_components.code,{children:`accessKey`}),`, `,_jsx(_components.code,{children:`secretKey`}),` and `,_jsx(_components.code,{children:`sessionToken`}),`) are configured.`]}),`\n`,_jsxs(_components.p,{children:[`For S3-compatible storage (MinIO, NetApp ONTAP, Dell ECS, Cloudflare R2), set `,_jsx(_components.code,{children:`disableChecksums`}),` to `,_jsx(_components.strong,{children:`true`}),`.`]}),`\n`,_jsx(_components.p,{children:`Otherwise, the AWS SDK sends a checksum in a form these backends do not accept, and uploads fail (the backend may report that the checksum header does not match).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Key`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`accessKey`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 access key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`secretKey`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 secret key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`sessionToken`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 session token`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`bucketName`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 bucket name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`uri`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 URI`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`region`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`S3 region`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`disableChecksums`}),_jsx(_components.td,{style:{textAlign:`left`},children:`boolean`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Set to `,_jsx(_components.strong,{children:`true`}),` for S3-compatible storage (MinIO, NetApp ONTAP, Dell ECS, Cloudflare R2) so uploads succeed; the default checksum format is not accepted by these backends. Default: `,_jsx(_components.strong,{children:`false`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`azure-blob-storage`,children:`Azure Blob Storage`}),`\n`,_jsxs(_components.p,{children:[`Note that your application will require at least `,_jsx(_components.strong,{children:`Storage Blob Data Contributor`}),` permissions to be able to read/write the data.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Key`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`tenantId`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Azure tenant ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`clientId`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Azure client ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`secret`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Azure client secret`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`blobEndpoint`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Azure Blob Storage endpoint to use`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`bucketName`}),_jsx(_components.td,{style:{textAlign:`left`},children:`string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Bucket (container) name in Blob Storage configured to store in`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`large-messages`,children:`Large messages`}),`\n`,_jsxs(_components.p,{children:[`Each `,_jsx(_components.em,{children:`individual message`}),` that’s above the `,_jsx(_components.code,{children:`minimumSizeInBytes`}),` threshold will be saved in `,_jsx(_components.strong,{children:`one file`}),` on Amazon S3, with credentials defaulting to managed identity:`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`curl`,id:`curl`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`26`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`26`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'http://localhost:8888/gateway/v2/interceptor'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Basic YWRtaW46Y29uZHVrdG9y'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-raw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"kind\": \"Interceptor\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"apiVersion\": \"gateway/v2\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"myLargeMessageHandlingPlugin\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"spec\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pluginClass\": \"io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"priority\": 100,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"topic\": \"topic.*\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"minimumSizeInBytes\": 1024,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"localDiskDirectory\": \"myStorage/\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"s3Config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bucketName\": \"myBucketName\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"uri\": \"http://myexampleuri\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"region\": \"us-east-1\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})})}),_jsxs(Tab,{title:`Conduktor CLI`,id:`conduktor-cli`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`apiVersion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`gateway/v2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`kind`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Interceptor`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`metadata`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myLargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` scope`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vCluster`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`passthrough`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`spec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` pluginClass`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` priority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` topic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`topic.*`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` minimumSizeInBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1024`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` localDiskDirectory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myStorage/`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` s3Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` bucketName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myBucketName`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uri`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http://myexampleuri`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` region`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`us-east-1`})]}),`\n`]})})}),_jsx(_components.p,{children:`Apply with:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`conduktor`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` large-message-handling-interceptor.yaml`})]}),`\n`]})})})]})]}),`\n`,_jsxs(_components.p,{children:[`With `,_jsx(_components.code,{children:`basic credentials`}),`:`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`curl`,id:`curl-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`28`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'http://localhost:8888/gateway/v2/interceptor'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Basic YWRtaW46Y29uZHVrdG9y'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-raw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"kind\": \"Interceptor\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"apiVersion\": \"gateway/v2\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"myLargeMessageHandlingPlugin\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"spec\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pluginClass\": \"io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"priority\": 100,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"topic\": \"topic.*\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"minimumSizeInBytes\": 1024,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"localDiskDirectory\": \"myStorage/\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"s3Config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"accessKey\": \"myAccessKey\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"secretKey\": \"mySecretKey\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bucketName\": \"myBucketName\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"uri\": \"http://myexampleuri\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"region\": \"us-east-1\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})})}),_jsxs(Tab,{title:`Conduktor CLI`,id:`conduktor-cli-2`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`apiVersion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`gateway/v2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`kind`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Interceptor`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`metadata`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myLargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` scope`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vCluster`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`passthrough`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`spec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` pluginClass`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` priority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` topic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`topic.*`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` minimumSizeInBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1024`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` localDiskDirectory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myStorage/`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` s3Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` accessKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myAccessKey`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` secretKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mySecretKey`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` bucketName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myBucketName`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uri`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http://myexampleuri`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` region`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`us-east-1`})]}),`\n`]})})}),_jsx(_components.p,{children:`Apply with:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`conduktor`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` large-message-handling-basic-creds-interceptor.yaml`})]}),`\n`]})})})]})]}),`\n`,_jsxs(_components.p,{children:[`With `,_jsx(_components.code,{children:`sessionCredentials`}),`:`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`curl`,id:`curl-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`29`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`29`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'http://localhost:8888/gateway/v2/interceptor'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Basic YWRtaW46Y29uZHVrdG9y'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-raw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"kind\": \"Interceptor\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"apiVersion\": \"gateway/v2\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"myLargeMessageHandlingPlugin\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"spec\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pluginClass\": \"io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"priority\": 100,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"topic\": \"topic.*\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"minimumSizeInBytes\": 1024,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"localDiskDirectory\": \"myStorage/\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"s3Config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"accessKey\": \"myAccessKey\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"secretKey\": \"mySecretKey\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"sessionToken\": \"mySessionToken\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bucketName\": \"myBucketName\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"uri\": \"http://myexampleuri\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"region\": \"us-east-1\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})})}),_jsxs(Tab,{title:`Conduktor CLI`,id:`conduktor-cli-3`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`apiVersion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`gateway/v2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`kind`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Interceptor`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`metadata`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myLargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` scope`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vCluster`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`passthrough`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`spec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` pluginClass`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`io.conduktor.gateway.interceptor.LargeMessageHandlingPlugin`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` priority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` topic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`topic.*`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` minimumSizeInBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1024`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` localDiskDirectory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myStorage/`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` s3Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` accessKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myAccessKey`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` secretKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mySecretKey`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` sessionToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mySessionToken`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` bucketName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`myBucketName`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uri`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http://myexampleuri`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` region`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`us-east-1`})]}),`\n`]})})}),_jsx(_components.p,{children:`Apply with:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`conduktor`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` large-message-handling-session-creds-interceptor.yaml`})]}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`combine-with-encryption`,children:`Combine with encryption`}),`\n`,_jsxs(_components.p,{children:[`When you combine encryption with `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),`, priority order matters in both directions.`]}),`\n`,_jsxs(_components.p,{children:[`On produce, the encryption Interceptor must run before `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` to ensure data offloaded to cloud storage is stored encrypted.`]}),`\n`,_jsxs(_components.p,{children:[`On consume, `,_jsx(_components.code,{children:`DecryptPlugin`}),` must run after `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` so the re-fetched ciphertext is decrypted before reaching the consumer.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`If `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` has a lower priority number than the encryption Interceptor, it offloads records before they’re encrypted. Cloud storage will hold plaintext.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`recommended-priority-order`,children:`Recommended priority order`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`EncryptPlugin`}),` — lowest priority (for example, `,_jsx(_components.code,{children:`100`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` — middle priority (for example, `,_jsx(_components.code,{children:`200`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DecryptPlugin`}),` — highest priority (for example, `,_jsx(_components.code,{children:`300`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`why-this-order-works`,children:`Why this order works`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Produce flow:`}),` records leave the client, `,_jsx(_components.code,{children:`EncryptPlugin`}),` runs first (priority `,_jsx(_components.code,{children:`100`}),`) and encrypts configured fields or the full payload, then `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` runs next (priority `,_jsx(_components.code,{children:`200`}),`); if the encrypted record exceeds `,_jsx(_components.code,{children:`minimumSizeInBytes`}),`, it’s offloaded to cloud storage. The file in cloud storage contains ciphertext.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Consume flow:`}),` records leave the broker, `,_jsx(_components.code,{children:`LargeMessageHandlingPlugin`}),` runs first among the consume-path Interceptors (priority `,_jsx(_components.code,{children:`200`}),`) and re-fetches the offloaded ciphertext from cloud storage into the local temp directory, then `,_jsx(_components.code,{children:`DecryptPlugin`}),` runs next (priority `,_jsx(_components.code,{children:`300`}),`) and decrypts the ciphertext before the record reaches the consumer.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/guide/conduktor-concepts/interceptors#how-they-work`,children:`how Interceptors execute`}),` for more on priority and execution paths, and `,_jsx(_components.a,{href:`/guide/tutorials/configure-encryption`,children:`the encryption configuration reference`}),` for the full encryption Interceptor configuration.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{FeatureLabel,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":"Large Kafka message handling — offload to cloud storage","description":"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.","sidebarTitle":"Manage large messages","href":"/guide/use-cases/manage-large-messages"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[148,1493,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Configuration","slug":"configuration","depth":2,"children":[{"title":"Local disk cache","slug":"local-disk-cache","depth":3,"children":[]},{"title":"When files are written to disk","slug":"when-files-are-written-to-disk","depth":4,"children":[]},{"title":"When files are removed","slug":"when-files-are-removed","depth":4,"children":[]},{"title":"Sizing the volume","slug":"sizing-the-volume","depth":4,"children":[]},{"title":"Permissions and startup behavior","slug":"permissions-and-startup-behavior","depth":4,"children":[]},{"title":"Default location","slug":"default-location","depth":4,"children":[]},{"title":"Amazon S3","slug":"amazon-s3","depth":3,"children":[]},{"title":"Azure Blob Storage","slug":"azure-blob-storage","depth":3,"children":[]}]},{"title":"Large messages","slug":"large-messages","depth":2,"children":[{"title":"Combine with encryption","slug":"combine-with-encryption","depth":3,"children":[]},{"title":"Recommended priority order","slug":"recommended-priority-order","depth":4,"children":[]},{"title":"Why this order works","slug":"why-this-order-works","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/conduktor/b61a96a49b2e8dff/seo-jsonld.js","/_mintlify/custom/conduktor/78d4ee385e74bdb6/release-index.js"],"subdomain":"conduktor","siteName":"Conduktor Docs","title":"Large Kafka message handling — offload to cloud storage - Conduktor Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T10:48:03.949Z","originalFileLocation":"guide/use-cases/manage-large-messages.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=\"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Conduktor Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_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/conduktor/y8gtQ07WBXvYRUx2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Large Kafka message handling — offload to cloud storage - Conduktor Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Conduktor Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.conduktor.io/guide/use-cases/manage-large-messages\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.conduktor.io/images/conduktor-overview.png\">\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=\"Large Kafka message handling — offload to cloud storage - Conduktor Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.conduktor.io/images/conduktor-overview.png\">\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/conduktor/y8gtQ07WBXvYRUx2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Conduktor Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#09343C\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Conduktor — Kafka operations and governance platform\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.conduktor.io/guide/use-cases/manage-large-messages\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guide/use-cases/manage-large-messages.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.conduktor.io/#organization\",\"name\":\"Conduktor Docs\",\"url\":\"https://docs.conduktor.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/conduktor/089vHQa2MA1IdMUE/logo/light.svg?fit=max\u0026auto=format\u0026n=089vHQa2MA1IdMUE\u0026q=85\u0026s=6435b57bce25a923f123614b7af5a6fb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.conduktor.io#website\",\"name\":\"Conduktor Docs\",\"url\":\"https://docs.conduktor.io\",\"publisher\":{\"@id\":\"https://docs.conduktor.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages#webpage\",\"url\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages\",\"name\":\"Large Kafka message handling — offload to cloud storage\",\"description\":\"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\",\"dateModified\":\"2026-10-08T10:48:03.949Z\",\"isPartOf\":{\"@id\":\"https://docs.conduktor.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Optimize performance\",\"item\":\"https://docs.conduktor.io/guide/use-cases/chaos-testing\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Large Kafka message handling — offload to cloud storage\",\"item\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages#article\",\"headline\":\"Large Kafka message handling — offload to cloud storage\",\"name\":\"Large Kafka message handling — offload to cloud storage\",\"description\":\"Handle oversized Kafka messages by offloading payloads to S3, GCS, or Azure Blob with Conduktor Gateway.\",\"url\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages\",\"mainEntityOfPage\":{\"@id\":\"https://docs.conduktor.io/guide/use-cases/manage-large-messages#webpage\"},\"image\":\"https://docs.conduktor.io/images/conduktor-overview.png\",\"dateModified\":\"2026-10-08T10:48:03.949Z\",\"publisher\":{\"@id\":\"https://docs.conduktor.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.conduktor.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Conduktor Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Conduktor Docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Get started","pages":[{"title":"Get started","href":"/guide"}]},{"tab":"Deploy and configure","pages":[{"title":"Deploy and configure","href":"/guide/conduktor-in-production/system-requirements"}]},{"tab":"Use and maintain","pages":[{"title":"Use and maintain","href":"/guide/insights"}]},{"tab":"Use cases","groups":[{"group":"Kafka management","pages":[{"title":"Kafka management — topics, consumers, and clusters","sidebarTitle":"Kafka management","href":"/guide/use-cases/kafka-management"}]},{"group":"Enable teams","icon":"sparkle","pages":[{"title":"Kafka Self-service: topic requests and governance","sidebarTitle":"Self-service","href":"/guide/use-cases/self-service"},{"title":"Use Chargeback","href":"/guide/use-cases/chargeback"},{"title":"Share Kafka data externally","sidebarTitle":"Share data externally","href":"/guide/use-cases/third-party-data"}]},{"group":"Secure and govern data","icon":"sparkle","pages":[{"title":"Kafka encryption, masking and tokenization","sidebarTitle":"Protect Kafka data","href":"/guide/use-cases/kafka-encryption"},{"title":"Kafka message signing and integrity verification","sidebarTitle":"Verify message integrity","href":"/guide/use-cases/kafka-message-signing"},{"title":"Observe Kafka data quality — monitor violations in Console","sidebarTitle":"Observe data quality","href":"/guide/use-cases/observe-data-quality"},{"title":"Enforce Kafka data quality — intercept and reject bad messages","sidebarTitle":"Enforce data quality","href":"/guide/use-cases/enforce-data-quality"},{"title":"Kafka traffic control policies","sidebarTitle":"Apply traffic control","href":"/guide/use-cases/apply-traffic-control-policies"}]},{"group":"Optimize performance","icon":"sparkle","pages":[{"title":"Kafka chaos testing — simulate failures","description":"Test Kafka resilience by injecting failures, delays, and corrupted messages with Conduktor Gateway.","sidebarTitle":"Chaos testing","href":"/guide/use-cases/chaos-testing"},{"title":"Large Kafka message handling — offload to cloud storage","sidebarTitle":"Manage large messages","href":"/guide/use-cases/manage-large-messages"},{"title":"Cache Kafka records — Conduktor Gateway","description":"Cache Kafka records with a Conduktor Gateway interceptor to reduce broker load and improve consumer fetch performance.","sidebarTitle":"Cache data","href":"/guide/use-cases/cache-kafka-data"}]}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/guide/tutorials/deploy-aws"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/guide/reference/feature-labels"}]},{"tab":"Release notes","pages":[{"title":"Release notes","href":"/guide/release-notes"}]},{"tab":"Support","pages":[{"title":"Support","href":"/guide/support"}]},{"tab":"Learn Apache Kafka","href":"https://www.conduktor.io/kafka?utm_source=docs\u0026utm_medium=referral\u0026src=docs-nav"},{"tab":" ","pages":[{"title":" ","href":"/gateway"}]},{"tab":" ","pages":[{"title":" ","href":"/platform"}]}]},"basePath":"","title":"Large Kafka message handling — offload to cloud storage - Conduktor Docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}