1<!DOCTYPE html><html dir="ltr" lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>FlowMQ - Unified MQTT, Kafka, AMQP & NATS</title><style>.hero-center-signal[data-v-a28e996d]{animation:hero-center-signal-a28e996d 3.2s ease-in-out infinite}.hero-node-signal[data-v-a28e996d]{opacity:0;transform:scale(.9);transition:opacity .22s ease,transform .22s ease}.hero-node-signal-sending[data-v-a28e996d]{opacity:.85;transform:scale(1);box-shadow:0 0 18px #9467f938}.hero-node-signal-receiving[data-v-a28e996d]{opacity:.45;transform:scale(1)}@keyframes hero-center-signal-a28e996d{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.8;transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.hero-center-signal[data-v-a28e996d]{animation:none;opacity:.65}}</style><style>.platform-flow-v2[data-v-04d2de2f]{--platform-flow-line:color-mix(in srgb,var(--muted-foreground) 35%,transparent);--platform-flow-accent:color-mix(in srgb,var(--muted-foreground) 68%,transparent);--platform-flow-label:var(--muted-foreground);--platform-flow-ambient:var(--foreground)}.platform-feature:hover .platform-flow-v2{--platform-flow-accent:color-mix(in srgb,var(--brand) 46%,var(--muted-foreground));--platform-flow-label:color-mix(in srgb,var(--foreground) 78%,var(--muted-foreground))}.platform-flow-v2[data-v-04d2de2f] svg{display:block;width:100%;height:100%}.platform-flow-v2[data-v-04d2de2f] [data-motion],.platform-flow-v2[data-v-04d2de2f] circle,.platform-flow-v2[data-v-04d2de2f] path,.platform-flow-v2[data-v-04d2de2f] text{transition:fill .24s ease,stroke .24s ease,transform .42s cubic-bezier(.16,1,.3,1),offset-distance .52s cubic-bezier(.16,1,.3,1),opacity .24s ease}.platform-flow-v2[data-v-04d2de2f] [data-motion]{transform-box:fill-box;transform-origin:center}.platform-feature:hover .platform-flow-v2[data-type=engine] [data-motion=engine-orbit]{transform:rotate(6deg)}.platform-feature:hover .platform-flow-v2[data-type=engine] [data-motion=engine-core]{transform:scale(1.1)}.platform-feature:hover .platform-flow-v2[data-type=paradigms] [data-motion=paradigm-top]{transform:translateY(4px)}.platform-feature:hover .platform-flow-v2[data-type=paradigms] [data-motion=paradigm-left]{transform:translate(3px,-2px)}.platform-feature:hover .platform-flow-v2[data-type=paradigms] [data-motion=paradigm-right]{transform:translate(-3px,-2px)}.platform-feature:hover .platform-flow-v2[data-type=protocols] [data-motion=protocol-top]{transform:translateY(3px)}.platform-feature:hover .platform-flow-v2[data-type=protocols] [data-motion=protocol-bottom]{transform:translateY(-3px)}.platform-feature:hover .platform-flow-v2[data-type=protocols] [data-motion=protocol-left]{transform:translate(3px)}.platform-feature:hover .platform-flow-v2[data-type=protocols] [data-motion=protocol-right]{transform:translate(-3px)}.platform-flow-v2[data-type=workload][data-v-04d2de2f] [data-motion=workload-left]{offset-path:path("M 109.333 194 C 120 192 132 188 142.667 186");offset-distance:0;offset-rotate:0deg;offset-anchor:center}.platform-flow-v2[data-type=workload][data-v-04d2de2f] [data-motion=workload-right]{offset-path:path("M 516 113 C 528 116 540 120 552 124");offset-distance:0;offset-rotate:0deg;offset-anchor:center}.platform-feature:hover .platform-flow-v2[data-type=workload] [data-motion^=workload-]{offset-distance:100%}.platform-feature:hover .platform-flow-v2[data-type=tenancy] [data-motion^=tenancy-layer] path{stroke:var(--platform-flow-accent)}.platform-feature:hover .platform-flow-v2[data-type=tenancy] [data-motion=tenancy-layer-top]{transform:translateY(-6px)}.platform-feature:hover .platform-flow-v2[data-type=tenancy] [data-motion=tenancy-layer-bottom]{transform:translateY(6px)}.platform-feature:hover .platform-flow-v2[data-type=tenancy] [data-motion=tenancy-content]{transform:translateY(-3px)}@media(prefers-reduced-motion:reduce){.platform-flow-v2[data-v-04d2de2f] [data-motion],.platform-flow-v2[data-v-04d2de2f] circle,.platform-flow-v2[data-v-04d2de2f] path,.platform-flow-v2[data-v-04d2de2f] text{transition:none}}</style><style>.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__connection-path,.vue-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-textbg{fill:#fff}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;
1cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}</style><style>:root{--vf-node-bg:#fff;--vf-node-text:#222;--vf-connection-path:#b1b1b7;--vf-handle:#555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color:var(--vf-node-color,#0041d0);--vf-handle:var(--vf-node-color,#0041d0);--vf-box-shadow:var(--vf-node-color,#0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color,#0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color,#0041d0)}.vue-flow__node-default{--vf-handle:var(--vf-node-color,#1a192b);--vf-box-shadow:var(--vf-node-color,#1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color,#1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color,#1a192b)}.vue-flow__node-output{--vf-handle:var(--vf-node-color,#ff0072);--vf-box-shadow:var(--vf-node-color,#ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color,#ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color,#ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}</style><style>#flowmq-architecture .vue-flow__node{outline:none!important}#flowmq-architecture .vue-flow__edge.animated path{stroke-dasharray:4 2;animation:flowmqArchitectureDashdraw .5s linear infinite}@keyframes flowmqArchitectureDashdraw{0%{stroke-dashoffset:12}}@media(prefers-reduced-motion:reduce){#flowmq-architecture .vue-flow__edge.animated path{animation:none}}</style><style>.ui-accordion[data-v-658b1e63]{width:100%}</style><style>.ui-accordion-item[data-v-04e10d3a]{margin-bottom:.5rem}</style><style>.ui-accordion-trigger[data-v-bc544fa9]{cursor:pointer}</style><style>.ui-accordion-content[data-v-f30753ca]{padding:.5rem 0}</style><link rel="stylesheet" href="/_nuxt/entry.D0NUmy5I.css" crossorigin><link rel="stylesheet" href="/_nuxt/FinalCta.C0yKD398.css" crossorigin><link href="https://analytics.emqx.com/ta.js" rel="preload" crossorigin="anonymous" referrerpolicy="no-referrer" fetchpriority="low" as="script"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B5ypgLFi.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/iVXOW8RQ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C1tSitqM.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DzYU8giY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CjMghhTy.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DmTjTZK9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CeXtrIGW.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B9XI9Wk7.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DNIe5Eja.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_2CejD5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DO0c_oJ9.js">
1<link rel="modulepreload" as="script" crossorigin href="/_nuxt/FUKBWQwh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CPYVXSHG.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D-pctMGk.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D_YSECl6.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3VfEJkO.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B68jF18q.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DFurHLEF.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/tkDPYR1w.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CqkleIqs.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BMy3M5ND.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DB3uAXBF.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C_YeUtWc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CzUTk3fd.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DXjxXx8E.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D8QuksZR.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bvnz_6WZ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B2fAmnXM.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BoI4cok7.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DD7_lBPD.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BxrrBEKe.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dgf24I8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DE_vZzYC.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B6AGUFzi.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DYV0ab8n.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/q0IVNwP9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CL2ZvVU2.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bw37zKyf.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DlAUqK2U.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CmaYmFno.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BeDn_uXR.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B13FTaUN.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/-HKf9EHN.js">
1<script type="module" src="/_nuxt/B5ypgLFi.js" crossorigin></script>
1<link rel="prefetch" as="image" type="image/svg+xml" href="/_nuxt/404.Dw2iEIsz.svg"><link rel="prefetch" as="script" crossorigin href="/_nuxt/93AaIr2b.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/rJCbAzvX.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BZ-M58A3.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/D0X7-N8S.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CaF9tmSW.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DteklFc3.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/FrAQO-h2.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/3sHOUTE6.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/C51oS0CH.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHM7rdKL.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DNPaFA5k.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/_-4i6Y1m.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DqVHIdJ9.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CUomUwTM.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DrFF-_Eh.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/rjmnP_P1.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/1_al5Mx7.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/C9Nsyr5t.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/jFYhBC76.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/JYrm0qof.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/D4SOpgtS.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/C9CSP-qO.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/C6cA3NAS.js"><meta name="twitter:card" content="summary"><meta name="twitter:site" content="@flowmqio"><meta name="twitter:title" content="FlowMQ - Unified MQTT, Kafka, AMQP & NATS"><meta name="twitter:description" content="FlowMQ unifies MQTT, Kafka, AMQP, and NATS into one platform, connecting devices, agents, apps, and data from edge to cloud."><meta name="twitter:image" content="https://flowmq.io/images/og-image.png"><meta name="twitter:image:alt" content="FlowMQ: The Unified MQ and Data Streaming Platform for AI"><meta itemprop="name" content="FlowMQ: The Unified MQ and Data Streaming Platform for AI"><meta itemprop="image" content="https://flowmq.io/images/og-image.png"><meta name="description" content="FlowMQ unifies MQTT, Kafka, AMQP, and NATS into one platform, connecting devices, agents, apps, and data from edge to cloud."><meta name="author" content="FlowMQ Inc."><meta property="og:site_name" content="flowmq.io"><meta property="og:type" content="website"><meta property="og:title" content="FlowMQ - Unified MQTT, Kafka, AMQP & NATS"><meta property="og:description" content="FlowMQ unifies MQTT, Kafka, AMQP, and NATS into one platform, connecting devices, agents, apps, and data from edge to cloud."><meta property="og:image" content="https://flowmq.io/images/og-image.png"><meta property="og:image:alt" content="FlowMQ: The Unified MQ and Data Streaming Platform for AI"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta name="apple-mobile-web-app-title" content="FlowMQ"><link rel="icon" type="image/png" href="/favicons/v2/favicon-96x96.png" sizes="96x96"><link rel="icon" type="image/svg+xml" href="/favicons/v2/favicon.svg"><link rel="shortcut icon" href="/favicons/v2/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/favicons/v2/apple-touch-icon.png"><link rel="manifest" href="/favicons/v2/site.webmanifest"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta id="i18n-og-url" property="og:url" content="https://flowmq.io"><meta id="i18n-og" property="og:locale" content="en"><link id="i18n-xd" rel="alternate" href="https://flowmq.io" hreflang="x-default"><link id="i18n-alt-en" rel="alternate" href="https://flowmq.io" hreflang="en"><link id="i18n-can" rel="canonical" href="https://flowmq.io">
1<script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"dark";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"dark"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script>
1</head><body><!--teleport start anchor--><!--teleport anchor--><div id="__nuxt"><!--[--><div><header id="app-header" class="print:hidden select-none z-50 h-16 sticky top-0 border-b border-border/70 transition-colors duration-300 backdrop-blur-xl bg-background/80 supports-backdrop-filter:bg-background/70"><div class="container mx-auto h-full px-4"><div class="flex h-full items-center justify-between lg:grid lg:grid-cols-[1fr_auto_1fr]"><div class="flex items-center"><a aria-current="page" href="/" class="router-link-active router-link-exact-active flex items-center space-x-2"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--my-icon" style="font-size:22px;" width="1.5em" height="1em" viewBox="0 0 57 38"><g fill="none"><g opacity="0.5"> 2<path d="M49.7322 3.03571H2.55358C1.69644 3.03571 1.08929 2.28571 1.08929 1.46429C1.08929 0.642857 1.73215 0 2.55358 0H49.7322C50.5893 0 51.1964 0.642857 51.1964 1.46429C51.1964 2.28571 50.5536 3.03571 49.7322 3.03571Z" fill="#9467F9"/> 3<path d="M49.7322 38H2.55358C1.69644 38 1.08929 37.3572 1.08929 36.5357C1.08929 35.7143 1.73215 35.0714 2.55358 35.0714H49.7322C50.5893 35.0714 51.1964 35.7143 51.1964 36.5357C51.1964 37.3572 50.5536 38 49.7322 38Z" fill="#9467F9"/> 4<path d="M26.7679 24H18.0179C17.1607 24 16.5536 23.3571 16.5536 22.5357C16.5536 21.7143 17.1964 21.0714 18.0179 21.0714H26.6607C27.5179 21.0714 28.125 21.7143 28.125 22.5357C28.125 23.3571 27.4822 24 26.7679 24Z" fill="#9467F9"/> 5<path d="M35.9107 9.96434H27.1964C26.3392 9.96434 25.7321 9.32148 25.7321 8.50005C25.7321 7.67862 26.3749 7.03577 27.1964 7.03577H35.8035C36.6607 7.03577 37.2678 7.67862 37.2678 8.50005C37.4107 9.35719 36.7678 9.96434 35.9107 9.96434Z" fill="#9467F9"/> 6<path d="M40.3392 31.0358H22.875C22.0178 31.0358 21.4107 30.3929 21.4107 29.5715C21.4107 28.7501 22.0535 28.1072 22.875 28.1072H40.3392C41.1964 28.1072 41.8035 28.7501 41.8035 29.5715C41.8035 30.3215 41.1964 31.0358 40.3392 31.0358Z" fill="#9467F9"/> 7<path d="M20.6608 17.0357H4.66076C3.80361 17.0357 3.19647 16.3929 3.19647 15.5715C3.19647 14.75 3.83933 14.1072 4.66076 14.1072H20.6608C21.5179 14.1072 22.125 14.75 22.125 15.5715C22.2322 16.2857 21.4822 17.0357 20.6608 17.0357Z" fill="#9467F9"/> 8</g> 9<path d="M54.4464 3.03571H7.26784C6.4107 3.03571 5.80356 2.28571 5.80356 1.46429C5.80356 0.642857 6.44641 0 7.26784 0H54.4464C55.3036 0 55.9107 0.642857 55.9107 1.46429C55.9107 2.28571 55.2678 3.03571 54.4464 3.03571Z" fill="#9467F9"/> 10<path d="M54.4464 38H7.26784C6.4107 38 5.80356 37.3572 5.80356 36.5357C5.80356 35.7143 6.44641 35.0714 7.26784 35.0714H54.4464C55.3036 35.0714 55.9107 35.7143 55.9107 36.5357C55.9107 37.3572 55.2678 38 54.4464 38Z" fill="#9467F9"/> 11<path d="M31.4822 24H22.7322C21.875 24 21.2679 23.3571 21.2679 22.5357C21.2679 21.7143 21.9107 21.0714 22.7322 21.0714H31.375C32.2322 21.0714 32.8393 21.7143 32.8393 22.5357C32.8393 23.3571 32.1965 24 31.4822 24Z" fill="#9467F9"/> 12<path d="M40.625 9.96434H31.9108C31.0536 9.96434 30.4465 9.32148 30.4465 8.50005C30.4465 7.67862 31.0893 7.03577 31.9108 7.03577H40.5179C41.375 7.03577 41.9822 7.67862 41.9822 8.50005C42.125 9.35719 41.4822 9.96434 40.625 9.96434Z" fill="#9467F9"/> 13<path d="M45.0536 31.0358H27.5893C26.7322 31.0358 26.125 30.3929 26.125 29.5715C26.125 28.7501 26.7679 28.1072 27.5893 28.1072H45.0536C45.9107 28.1072 46.5179 28.7501 46.5179 29.5715C46.5179 30.3215 45.9107 31.0358 45.0536 31.0358Z" fill="#9467F9"/> 14<path d="M25.3751 17.0357H9.37505C8.51791 17.0357 7.91077 16.3929 7.91077 15.5715C7.91077 14.75 8.55362 14.1072 9.37505 14.1072H25.3751C26.2322 14.1072 26.8393 14.75 26.8393 15.5715C26.9465 16.2857 26.1965 17.0357 25.3751 17.0357Z" fill="#9467F9"/></g></svg><span class="text-xl font-semibold tracking-[-0.03em] text-foreground">FlowMQ</span><!--]--></a></div><div class="hidden lg:contents"><nav class="relative z-10 flex max-w-max flex-1 items-center justify-center justify-self-center" data-orientation="horizontal" dir="ltr" data-reka-navigation-menu><!--[--><!--[--><div style="position:relative;"><ul class="group flex flex-1 list-none items-center justify-center gap-x-1" data-orientation="horizontal"><!--[--><!--[--><li data-menu-item><!--[--><!--[--><!--[--><button data-reka-collection-item id data-state="closed" data-navigation-menu-trigger aria-expanded="false" aria-controls class="group inline-flex w-max items-center justify-center rounded-md transition-colors focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 group h-8 bg-transparent px-3 py-1.5 text-sm font-normal text-foreground
14/50 shadow-none hover:bg-transparent hover:text-foreground focus:bg-transparent focus:text-foreground data-[state=open]:bg-transparent data-[state=open]:text-foreground"><!--[--><!--[-->Product<!--]--><svg 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" class="lucide lucide-chevron-down-icon relative top-px ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg><!--]--></button><!--v-if--><!--]--><!--teleport start--><!----><!--teleport end--><!--]--><!--]--></li><!--[--><li data-menu-item><!--[--><!--[--><a href="https://docs.flowmq.io/" rel="noopener" target="_blank" class="group inline-flex h-8 w-max items-center justify-center px-3 py-1.5 text-sm font-normal text-foreground/50 transition-colors hover:text-foreground focus:text-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" data-reka-collection-item><!--[-->Docs<!--]--></a><!--]--><!--]--></li><li data-menu-item><!--[--><!--[--><a href="/blog" class="group inline-flex h-8 w-max items-center justify-center px-3 py-1.5 text-sm font-normal text-foreground/50 transition-colors hover:text-foreground focus:text-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" data-reka-collection-item><!--[-->Blog<!--]--></a><!--]--><!--]--></li><li data-menu-item><!--[--><!--[--><a href="/pricing" class="group inline-flex h-8 w-max items-center justify-center px-3 py-1.5 text-sm font-normal text-foreground/50 transition-colors hover:text-foreground focus:text-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" data-reka-collection-item><!--[-->Pricing<!--]--></a><!--]--><!--]--></li><!--]--><!--]--><!--]--></ul></div><!--]--><div class="absolute left-0 top-full flex justify-center"><!----></div><!--]--></nav><div class="flex items-center justify-self-end gap-5"><!--[--><a href="https://join.slack.com/t/flowmqworkspace/shared_invite/zt-43u8cq429-HHhaylgGYPfK9XlwekS42A" rel="noopener" target="_blank" data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none text-base font-normal transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 w-9 p-0"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-4 opacity-70 transition-opacity hover:opacity-100" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5.042 15.165a2.53 2.53 0 0 1-2.52 2.523A2.53 2.53 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.53 2.53 0 0 1 8.834 24a2.53 2.53 0 0 1-2.521-2.522zM8.834 5.042a2.53 2.53 0 0 1-2.521-2.52A2.53 2.53 0 0 1 8.834 0a2.53 2.53 0 0 1 2.521 2.522v2.52zm0 1.271a2.53 2.53 0 0 1 2.521 2.521a2.53 2.53 0 0 1-2.521 2.521H2.522A2.53 2.53 0 0 1 0 8.834a2.53 2.53 0 0 1 2.522-2.521zm10.122 2.521a2.53 2.53 0 0 1 2.522-2.521A2.53 2.53 0 0 1 24 8.834a2.53 2.53 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.53 2.53 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.53 2.53 0 0 1 2.523 2.522zm-2.523 10.122a2.53 2.53 0 0 1 2.523 2.522A2.53 2.53 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.53 2.53 0 0 1-2.522 2.523z"/></svg><span class="sr-only">Slack</span><!--]--></a><!----><!--]--><span></span></div></div><div class="lg:hidden flex items-center space-x-3"><span></span><div class="mobile-menu-container relative"><!--[--><!--[--><!--[--><!--[--><button data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none text-base font-normal transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 outline-none h-10 w-10 p-0 touch-manipulation" id="reka-dropdown-menu-trigger-v-0-5" type="button" aria-haspopup="menu" aria-expanded="false" data-state="closed"><div class="relative flex size-full items-center justify-center"><span class="inline-flex items-center justify-center gap-2 whitespace-nowrap"><!--[--><svg 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" class="lucide lucide-menu-icon h-5 w-5"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg><span class="sr-only">
14Open navigation menu</span><!--]--></span><!----></div></button><!--v-if--><!--]--><!--]--><!--]--><!--]--></div></div></div></div></header><!--[--><main><section class="relative overflow-hidden"><div class="container pb-20 pt-8 sm:pb-24 sm:pt-12 lg:pb-28 lg:pt-16 xl:pb-32 xl:pt-20"><div class="mx-auto grid max-w-7xl items-center gap-14 lg:grid-cols-[minmax(0,1fr)_minmax(34rem,1fr)] lg:gap-10 xl:gap-12"><div class="mx-auto max-w-2xl text-center lg:mx-0 lg:text-left" style="opacity:0;transform:translateY(20px);"><a aria-current="page" href="/" class="router-link-active router-link-exact-active group mb-8 inline-flex min-h-11 items-center gap-3 rounded-full border border-border bg-background px-4 font-mono text-sm text-muted-foreground transition-colors hover:border-foreground/35 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:mb-9"><!--[--><span class="size-2 rounded-full bg-brand" aria-hidden="true"></span><span>Meet FlowMQ 1.0</span><span class="transition-transform group-hover:translate-x-0.5 motion-reduce:transition-none" aria-hidden="true"> â </span><!--]--></a><h1 class="mx-auto max-w-xl text-5xl font-medium text-foreground sm:text-6xl lg:mx-0 lg:text-7xl leading-[0.96] tracking-[-0.045em]"><span class="block">Everything</span><span class="block text-brand">Will Flow.</span></h1><p class="mx-auto mt-7 max-w-xl text-base leading-7 text-muted-foreground sm:text-lg sm:leading-8 lg:mx-0">FlowMQ unifies MQTT, Kafka, AMQP, and NATS into one platform, connecting devices, agents, apps, and data from edge to cloud.</p><div class="mt-9 flex flex-col justify-center gap-3 sm:flex-row sm:gap-4 md:gap-6 lg:justify-start"><!--[--><a href="/dashboard" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 px-12 py-4 has-[>svg]:px-3 h-11 px-6! text-sm font-normal md:px-12!" data-slot="button"><!--[-->Get Started Free<!--]--></a><!----><!--]--><!--[--><a href="/contact" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 px-12 py-4 has-[>svg]:px-3 h-11 px-6! text-sm font-normal shadow-none md:px-12!" data-slot="button" data-variant="outline"><!--[-->Request a Demo<!--]--></a><!----><!--]--></div></div><div class="mx-auto hidden w-full max-w-2xl lg:block" style="opacity:0;transform:scale(0.97);"><div class="relative w-full" style="height:480px;" data-v-a28e996d><div class="absolute left-0 top-0 origin-top-left" style="width:560px;height:480px;transform:scale(1);" data-v-a28e996d><svg class="pointer-events-none absolute inset-0 size-full" viewBox="0 0 560 480" fill="none" aria-hidden="true" data-v-a28e996d><circle cx="280" cy="240" r="180" stroke="currentColor" class="text-border" stroke-width="1" stroke-dasharray="5 10" data-v-a28e996d></circle><g data-v-a28e996d><!--[--><path d="M 130 240 A 150 150 0 0 1 280 90" stroke="currentColor" class="text-brand/25" stroke-width="1.5" data-v-a28e996d></path><path d="M 280 90 A 150 150 0 0 1 430 240" stroke="currentColor" class="text-border" stroke-width="1.5" data-v-a28e996d></path>
14<path d="M 430 240 A 150 150 0 0 1 280 390" stroke="currentColor" class="text-brand/25" stroke-width="1.5" data-v-a28e996d></path><path d="M 280 390 A 150 150 0 0 1 130 240" stroke="currentColor" class="text-border" stroke-width="1.5" data-v-a28e996d></path><!--]--><!--[--><path d="M 158.0 240.0 L 220.0 240.0" stroke="currentColor" class="text-muted-foreground/30" stroke-width="1.25" stroke-dasharray="4 6" data-v-a28e996d></path><path d="M 280.0 118.0 L 280.0 180.0" stroke="currentColor" class="text-muted-foreground/30" stroke-width="1.25" stroke-dasharray="4 6" data-v-a28e996d></path><path d="M 402.0 240.0 L 340.0 240.0" stroke="currentColor" class="text-muted-foreground/30" stroke-width="1.25" stroke-dasharray="4 6" data-v-a28e996d></path><path d="M 280.0 362.0 L 280.0 300.0" stroke="currentColor" class="text-muted-foreground/30" stroke-width="1.25" stroke-dasharray="4 6" data-v-a28e996d></path><!--]--></g><!--[--><circle cx="280" cy="240" r="3" fill="var(--brand)" opacity="0" data-v-a28e996d></circle><circle cx="280" cy="240" r="3" fill="var(--brand)" opacity="0" data-v-a28e996d></circle><circle cx="280" cy="240" r="3" fill="var(--brand)" opacity="0" data-v-a28e996d></circle><!--]--></svg><div class="pointer-events-none absolute inset-0" data-v-a28e996d><!--[--><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:130px;top:240.00000000000003px;" data-v-a28e996d><div class="relative" data-v-a28e996d><div class="hero-node-signal absolute -inset-2 rounded-full border border-brand/55" data-v-a28e996d></div><div class="relative flex size-14 items-center justify-center rounded-full border border-border bg-card text-foreground" data-v-a28e996d><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5" style="" width="1em" height="1em" viewBox="0 0 24 24" data-v-a28e996d><path fill="currentColor" d="M10.657 23.994h-9.45A1.21 1.21 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 10.386m7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 18.121 8.044 18.192 17.956m4.53 0h-.97C21.754 12.071 11.995 2.407 0 2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 14.508v8.291c0 .663-.544 1.195-1.207 1.195M16.713.006h6.092A1.19 1.19 0 0 1 24 1.2v5.914c-.91-1.242-2.046-2.65-3.158-3.762C19.588 2.11 18.122.987 16.714.005Z"/></svg></div><span class="absolute left-1/2 top-full mt-2 -translate-x-1/2 whitespace-nowrap font-mono text-xs text-muted-foreground" data-v-a28e996d>MQTT</span></div></div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:280px;top:90px;" data-v-a28e996d><div class="relative" data-v-a28e996d><div class="hero-node-signal absolute -inset-2 rounded-full border border-brand/55" data-v-a28e996d></div><div class="relative flex size-14 items-center justify-center rounded-full border border-border bg-card text-foreground" data-v-a28e996d><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5" style="" width="1em" height="1em" viewBox="0 0 24 24" data-v-a28e996d><path fill="currentColor" d="M9.71 2.136a1.43 1.43 0 0 0-2.047 0h-.007a1.48 1.48 0 0 0-.421 1.042c0 .41.161.777.422 1.039l.007.007c.257.264.616.426 1.019.426c.404 0 .766-.162 1.027-.426l.003-.007c.261-.262.421-.629.421-1.039c0-.408-.159-.777-.421-1.042zM8.683 22.295c.404 0 .766-.167 1.027-.429l.003-.008c.261-.261.421-.631.421-1.036c0-.41-.159-.778-.421-1.044H9.71a1.42 1.42 0 0 0-1.027-.432a1.4 1.4 0 0 0-1.02.432h-.007c-.26.266-.422.634-.422 1.044c0 .406.161.775.422 1.036l.007.008c.258.262.617.429 1.02.429m7.89-4.462c.359-.096.683-.33.882-.684l.027-.052a1.47 1.47 0 0 0 .114-1.067a1.45 1.45 0 0 0-.675-.896l-.021-.014a1.43 1.43 0 0 0-1.078-.132c-.36.091-.684.335-.881.686c-.2.349-.241.75-.146 1.119c.099.363.33.691.675.896h.002c.346.203.737.239 1.101.144m-6.405-7.342a2.08 2.08 0 0 0-1.485-.627c-.58 0-1.103.242-1.482.627c-.378.385-.612.916-.612 1.507s.233 1.124.612 1.514a2.08 2.08 0 0 0 2.967 0c.379-.39.612-.923.612-1.514s-.233-1.
14122-.612-1.507m-.835-2.51c.843.141 1.6.552 2.178 1.144h.004c.092.093.182.196.265.299l1.446-.851a3.2 3.2 0 0 1-.047-1.808a3.15 3.15 0 0 1 1.456-1.926l.025-.016a3.06 3.06 0 0 1 2.345-.306c.77.21 1.465.721 1.898 1.482v.002c.431.757.518 1.626.313 2.408a3.15 3.15 0 0 1-1.456 1.928l-.198.118h-.02a3.1 3.1 0 0 1-2.154.201a3.13 3.13 0 0 1-1.514-.944l-1.444.848a4.16 4.16 0 0 1 0 2.879l1.444.846c.413-.47.939-.789 1.514-.944a3.04 3.04 0 0 1 2.371.319l.048.023v.002a3.17 3.17 0 0 1 1.408 1.906a3.22 3.22 0 0 1-.313 2.405l-.026.053l-.003-.005a3.15 3.15 0 0 1-1.867 1.436a3.1 3.1 0 0 1-2.371-.318v-.006a3.16 3.16 0 0 1-1.456-1.927a3.2 3.2 0 0 1 .047-1.805l-1.446-.848a4 4 0 0 1-.265.294l-.004.005a3.94 3.94 0 0 1-2.178 1.138v1.699a3.1 3.1 0 0 1 1.56.862l.002.004c.565.572.914 1.368.914 2.243c0 .873-.35 1.664-.914 2.239l-.002.009a3.1 3.1 0 0 1-2.21.931a3.1 3.1 0 0 1-2.206-.93h-.002v-.009a3.2 3.2 0 0 1-.916-2.239c0-.875.35-1.672.916-2.243v-.004h.002a3.1 3.1 0 0 1 1.558-.862v-1.699a3.93 3.93 0 0 1-2.176-1.138l-.006-.005a4.1 4.1 0 0 1-1.173-2.874c0-1.122.452-2.136 1.173-2.872h.006a3.95 3.95 0 0 1 2.176-1.144V6.289a3.14 3.14 0 0 1-1.558-.864h-.002v-.004a3.2 3.2 0 0 1-.916-2.243c0-.871.35-1.669.916-2.243l.002-.002A3.08 3.08 0 0 1 8.683 0c.861 0 1.641.355 2.21.932v.002h.002c.565.574.914 1.372.914 2.243c0 .876-.35 1.667-.914 2.243l-.002.005a3.14 3.14 0 0 1-1.56.864zm8.121-1.129l-.012-.019a1.45 1.45 0 0 0-.87-.668a1.43 1.43 0 0 0-1.103.146h.002c-.347.2-.58.529-.677.896c-.095.365-.054.768.146 1.119l.007.009c.2.347.519.579.874.673c.357.103.755.059 1.098-.144l.019-.009a1.47 1.47 0 0 0 .657-.885a1.5 1.5 0 0 0-.141-1.118"/></svg></div><span class="absolute left-1/2 top-full mt-2 -translate-x-1/2 whitespace-nowrap font-mono text-xs text-muted-foreground" data-v-a28e996d>Kafka</span></div></div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:430px;top:239.99999999999997px;" data-v-a28e996d><div class="relative" data-v-a28e996d><div class="hero-node-signal absolute -inset-2 rounded-full border border-brand/55" data-v-a28e996d></div><div class="relative flex size-14 items-center justify-center rounded-full border border-border bg-card text-foreground" data-v-a28e996d><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5" style="" width="1em" height="1em" viewBox="0 0 24 24" data-v-a28e996d><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7"/><rect width="20" height="16" x="2" y="4" rx="2"/></g></svg></div><span class="absolute left-1/2 top-full mt-2 -translate-x-1/2 whitespace-nowrap font-mono text-xs text-muted-foreground" data-v-a28e996d>AMQP</span></div></div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:280.00000000000006px;top:390px;" data-v-a28e996d><div class="relative" data-v-a28e996d><div class="hero-node-signal absolute -inset-2 rounded-full border border-brand/55" data-v-a28e996d></div><div class="relative flex size-14 items-center justify-center rounded-full border border-border bg-card text-foreground" data-v-a28e996d><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5" style="" width="1em" height="1em" viewBox="0 0 24 24" data-v-a28e996d><path fill="currentColor" d="M12.004 0H.404v18.807h9.938l1.714 1.602v-.026L15.966 24v-5.193h7.63V0zm7.578 14.45H15.38L6.898 6.519v7.93H4.116V4.376h4.349l8.344 7.784V4.375h2.773z"/></svg></div><span class="absolute left-1/2 top-full mt-2 -translate-x-1/2 whitespace-nowrap font-mono text-xs text-muted-foreground" data-v-a28e996d>NATS</span></div></div><!--]--></div><div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2" data-v-a28e996d><div class="hero-center-signal absolute -inset-3 rounded-full border border-brand/35" data-v-a28e996d></div><div class="relative flex size-24 flex-col items-center justify-center rounded-full border border-brand/50 bg-card text-foreground" data-v-a28e996d><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--my-icon size-7 text-brand" style="" width="1.5em" height="1em" viewBox="0 0 57 38" data-v-a28e996d><g fill="none"><g opacity="0.5"> 15<path d="M49.7322 3.03571H2.55358C1.69644 3.03571 1.08929 2.28571 1.08929 1.46429C1.08929 0.642857 1.73215 0 2.55358 0H49.7322C50.5893 0 51.1964 0.642857 51.1964 1.46429C51.1964 2.28571 50.5536 3.03571 49.7322 3.03571Z" fill="#9467F9"/> 16<path d="M49.7322 38H2.55358C1.69644 38 1.08929 37.3572 1.08929 36.5357C1.08929 35.7143 1.73215 35.0714 2.55358 35.0714H49.7322C50.5893 35.0714 51.1964 35.7143 51.1964 36.5357C51.1964 37.3572 50.5536 38 49.7322 38Z" fill="#9467F9"/> 17<path d="M26.7679 24H18.0179C17.1607 24 16.5536 23.3571 16.5536 22.5357C16.5536 21.7143 17.1964 21.0714 18.0179 21.0714H26.6607C27.5179 21.0714 28.125 21.7143 28.125 22.5357C28.125 23.3571 27.4822 24 26.7679 24Z" fill="#9467F9"/> 18<path d="M35.9107 9.96434H27.1964C26.3392 9.96434 25.7321 9.32148 25.7321 8.50005C25.7321 7.67862 26.3749 7.03577 27.1964 7.03577H35.8035C36.6607 7.03577 37.2678 7.67862 37.2678 8.50005C37.4107 9.35719 36.7678 9.96434 35.9107 9.96434Z" fill="#9467F9"/> 19<path d="M40.3392 31.0358H22.875C22.0178 31.0358 21.4107 30.3929 21.4107 29.5715C21.4107 28.7501 22.0535 28.1072 22.875 28.1072H40.3392C41.1964 28.1072 41.8035 28.7501 41.8035 29.5715C41.8035 30.3215 41.1964 31.0358 40.3392 31.0358Z" fill="#9467F9"/> 20<path d="M20.6608 17.0357H4.66076C3.80361 17.0357 3.19647 16.3929 3.19647 15.5715C3.19647 14.75 3.83933 14.1072 4.66076 14.1072H20.6608C21.5179 14.1072 22.125 14.75 22.125 15.5715C22.2322 16.2857 21.4822 17.0357 20.6608 17.0357Z" fill="#9467F9"/> 21</g> 22<path d="M54.4464 3.03571H7.26784C6.4107 3.03571 5.80356 2.28571 5.80356 1.46429C5.80356 0.642857 6.44641 0 7.26784 0H54.4464C55.3036 0 55.9107 0.642857 55.9107 1.46429C55.9107 2.28571 55.2678 3.03571 54.4464 3.03571Z" fill="#9467F9"/> 23<path d="M54.4464 38H7.26784C6.4107 38 5.80356 37.3572 5.80356 36.5357C5.80356 35.7143 6.44641 35.0714 7.26784 35.0714H54.4464C55.3036 35.0714 55.9107 35.7143 55.9107 36.5357C55.9107 37.3572 55.2678 38 54.4464 38Z" fill="#9467F9"/> 24<path d="M31.4822 24H22.7322C21.875 24 21.2679 23.3571 21.2679 22.5357C21.2679 21.7143 21.9107 21.0714 22.7322 21.0714H31.375C32.2322 21.0714 32.8393 21.7143 32.8393 22.5357C32.8393 23.3571 32.1965 24 31.4822 24Z" fill="#9467F9"/> 25<path d="M40.625 9.96434H31.9108C31.0536 9.96434 30.4465 9.32148 30.4465 8.50005C30.4465 7.67862 31.0893 7.03577 31.9108 7.03577H40.5179C41.375 7.03577 41.9822 7.67862 41.9822 8.50005C42.125 9.35719 41.4822 9.96434 40.625 9.96434Z" fill="#9467F9"/> 26<path d="M45.0536 31.0358H27.5893C26.7322 31.0358 26.125 30.3929 26.125 29.5715C26.125 28.7501 26.7679 28.1072 27.5893 28.1072H45.0536C45.9107 28.1072 46.5179 28.7501 46.5179 29.5715C46.5179 30.3215 45.9107 31.0358 45.0536 31.0358Z" fill="#9467F9"/> 27<path d="M25.3751 17.0357H9.37505C8.51791 17.0357 7.91077 16.3929 7.91077 15.5715C7.91077 14.75 8.55362 14.1072 9.37505 14.1072H25.3751C26.2322 14.1072 26.8393 14.75 26.8393 15.5715C26.9465 16.2857 26.1965 17.0357 25.3751 17.0357Z" fill="#9467F9"/></g></svg><span class="mt-1 font-mono text-xs font-medium" data-v-a28e996d>FlowMQ</span></div></div></div></div></div></div></div></section><section class="border-y border-border" aria-label="Supported Protocols"><div class="container overflow-hidden px-0 sm:px-6"><div class="-mb-px -mr-px grid sm:grid-cols-2 lg:mr-0 lg:grid-cols-4"><!--[-->
27<a href="https://docs.flowmq.io/protocols/mqtt.html" rel="noopener" target="_blank" class="group flex min-h-64 flex-col border-b border-r border-border p-7 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-8 lg:min-h-72 lg:px-7 lg:py-10" aria-label="MQTT: Device Connectivity"><!--[--><div><div class="font-mono text-xs text-muted-foreground">MQTT</div><h2 class="mt-7 text-lg font-medium tracking-[-0.02em] text-foreground">Device Connectivity</h2><p class="mt-3 text-sm leading-6 text-muted-foreground">Lightweight pub/sub messaging protocol connecting millions of devices.</p></div><div class="mt-auto flex items-center justify-between gap-4 pt-8"><span class="font-mono text-[11px] text-muted-foreground">v5.0 & 3.1.1 native</span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-muted-foreground transition duration-200 group-hover:translate-x-0.5 group-hover:text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"/></svg></div><!--]--></a><a href="https://docs.flowmq.io/protocols/kafka.html" rel="noopener" target="_blank" class="group flex min-h-64 flex-col border-b border-r border-border p-7 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-8 lg:min-h-72 lg:px-7 lg:py-10 sm:border-r-0 lg:border-r" aria-label="Kafka: Log Streaming"><!--[--><div><div class="font-mono text-xs text-muted-foreground">Kafka</div><h2 class="mt-7 text-lg font-medium tracking-[-0.02em] text-foreground">Log Streaming</h2><p class="mt-3 text-sm leading-6 text-muted-foreground">High-throughput partitioned event streaming for real-time data pipelines.</p></div><div class="mt-auto flex items-center justify-between gap-4 pt-8"><span class="font-mono text-[11px] text-muted-foreground">Distributed commit log</span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-muted-foreground transition duration-200 group-hover:translate-x-0.5 group-hover:text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"/></svg></div><!--]--></a><a href="https://docs.flowmq.io/protocols/amqp.html" rel="noopener" target="_blank" class="group flex min-h-64 flex-col border-b border-r border-border p-7 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-8 lg:min-h-72 lg:px-7 lg:py-10" aria-label="AMQP: Enterprise Queue"><!--[--><div><div class="font-mono text-xs text-muted-foreground">AMQP</div><h2 class="mt-7 text-lg font-medium tracking-[-0.02em] text-foreground">Enterprise Queue</h2><p class="mt-3 text-sm leading-6 text-muted-foreground">Routing exchanges and message queues for legacy enterprise systems.</p></div><div class="mt-auto flex items-center justify-between gap-4 pt-8"><span class="font-mono text-[11px] text-muted-foreground">Flexible routing topology</span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-muted-foreground transition duration-200 group-hover:translate-x-0.5 group-hover:text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"/></svg></div><!--]--></a><a href="https://docs.flowmq.io/protocols/nats.html" rel="noopener" target="_blank" class="group flex min-h-64 flex-col border-b border-r border-border p-7 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-8 lg:min-h-72 lg:px-7 lg:py-10 sm:border-r-0 lg:border-r-0" aria-label="NATS: Cloud Messaging"><!--[--><div><div class="font-mono text-xs text-muted-foreground">NATS</div><h2 class="mt-7 text-lg font-medium tracking-[-0.02em] text-foreground">Cloud Messaging</h2><p class="mt-3 text-sm leading-6 text-muted-foreground">Low-latency pub/sub messaging system for cloud-native microservices.</p></div><div class="mt-auto flex items-center justify-between gap-4 pt-8"><span class="font-mono text-[11px] text-muted-foreground">Simple message fabric</span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-muted-foreground transition duration-200 group-hover:translate-x-0.5 group-hover:text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24">
27<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"/></svg></div><!--]--></a><!--]--></div></div></section><section class="container pt-24 sm:pt-28 lg:pt-32"><div class="mx-auto mb-12 max-w-3xl text-center sm:mb-16 lg:mx-0 lg:text-left"><h2 class="mb-4 text-foreground text-2xl sm:text-3xl font-normal leading-[1.2] tracking-[-0.025em]"><!--[-->The FlowMQ Platform<!--]--></h2><p class="mb-8 text-base leading-relaxed text-muted-foreground mx-auto max-w-2xl lg:mx-0"><!--[-->One data plane. No adapters. No bridges. No glue code. Just seamless data flow.<!--]--></p></div><div class="mx-auto grid max-w-[560px] border-l border-t border-border lg:max-w-none lg:grid-cols-12"><!--[--><article class="lg:col-span-4 platform-feature border-b border-r border-border"><div class="platform-flow-v2 relative w-full overflow-hidden bg-surface-subtle aspect-[443/310]" data-type="engine" aria-hidden="true" data-v-04d2de2f><div class="absolute inset-0" data-v-04d2de2f><svg width="443" height="310" viewBox="0 0 443 310" fill="none" xmlns="http://www.w3.org/2000/svg"> 28 <g id="one-engine"> 29 <mask id="engine-mask" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="443" height="310"> 30 <rect x="0.5" y="0.5" width="442" height="309" fill="black" /> 31 </mask> 32 <g mask="url(#engine-mask)"> 33 <path data-motion="engine-ring" d="M222.5 251C275.243 251 318 208.243 318 155.5C318 102.757 275.243 60 222.5 60C169.757 60 127 102.757 127 155.5C127 208.243 169.757 251 222.5 251Z" stroke="var(--platform-flow-line)" /> 34 <path data-motion="engine-orbit" d="M222 334C320.859 334 401 253.859 401 155C401 56.141 320.859 -24 222 -24C123.141 -24 43 56.141 43 155C43 253.859 123.141 334 222 334Z" stroke="var(--platform-flow-accent)" stroke-dasharray="4 8" /> 35 <g data-motion="engine-core"> 36 <path opacity="0.4" d="M221.999 137.89C212.55 137.89 204.889 145.55 204.889 155C204.889 164.45 212.55 172.11 221.999 172.11C231.449 172.11 239.109 164.45 239.109 155C239.109 145.55 231.449 137.89 221.999 137.89Z" fill="var(--platform-flow-accent)" /> 37 <path opacity="0.6" d="M222 145C216.477 145 212 149.477 212 155C212 160.523 216.477 165 222 165C227.523 165 232 160.523 232 155C232 149.477 227.523 145 222 145Z" fill="var(--platform-flow-accent)" /> 38 </g> 39 </g> 40 </g> 41</svg> 42</div></div><div class="border-t border-border p-7 sm:p-8"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">One Engine</h3><p class="mt-3 text-sm leading-6 text-muted-foreground sm:text-[15px]">Architect a protocol-agnostic core routing model.</p></div></article><article class="lg:col-span-4 platform-feature border-b border-r border-border"><div class="platform-flow-v2 relative w-full overflow-hidden bg-surface-subtle aspect-[443/310]" data-type="paradigms" aria-hidden="true" data-v-04d2de2f><div class="absolute inset-0" data-v-04d2de2f><svg width="444" height="310" viewBox="0 0 444 310" fill="none" xmlns="http://www.w3.org/2000/svg"> 43 <g id="three-paradigms"> 44 <g data-motion="paradigm-top"> 45 <path d="M221.697 205.86C271.364 205.86 311.627 165.597 311.627 115.93C311.627 66.263 271.364 26 221.697 26C172.031 26 131.768 66.263 131.768 115.93C131.768 165.597 172.031 205.86 221.697 205.86Z" stroke="var(--platform-flow-accent)" /> 46 <text fill="var(--platform-flow-label)" font-family="var(--font-sans)" font-size="16" text-anchor="middle"><tspan data-label="queue" x="221.697" y="83.3682">QUEUE</tspan></text> 47 </g> 48 <g data-motion="paradigm-left"> 49 <path d="M161.93 283.799C211.597 283.799 251.86 243.536 251.86 193.869C251.86 144.202 211.597 103.939 161.93 103.939C112.263 103.939 72 144.202 72 193.869C72 243.536 112.263 283.799 161.93 283.799Z" stroke="var(--platform-flow-accent)" /> 50 <text fill="var(--platform-flow-label)" font-family="var(--font-sans)" font-size="16" text-anchor="middle"><tspan data-label="pub-sub" x="142" y="220.368">PUB/SUB</tspan></text> 51 </g> 52 <g data-motion="paradigm-right"> 53 <path d="M282.93 283.86C332.597 283.86 372.86 243.597 372.86 193.93C372.86 144.263 332.597 104 282.93 104C233.263 104 193 144.263 193 193.93C193 243.597 233.263 283.86 282.93 283.86Z" stroke="var(--platform-flow-accent)" /> 54 <text fill="var(--platform-flow-label)" font-family="var(--font-sans)" font-size="16" text-anchor="middle"><tspan data-label="stream" x="307" y="220.368">STREAM</tspan></text> 55 </g> 56 </g> 57</svg> 58</div></div><div class="border-t border-border p-7 sm:p-8"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Three Paradigms</h3><p class="mt-3 text-sm leading-6 text-muted-foreground sm:text-[15px]">Combine pub/sub, queues, and streams.</p></div></article><article class="lg:col-span-4 platform-feature border-b border-r border-border"><div class="platform-flow-v2 relative w-full overflow-hidden bg-surface-subtle aspect-[443/310]" data-type="protocols" aria-hidden="true" data-v-04d2de2f><div class="absolute inset-0" data-v-04d2de2f>
58<svg width="443" height="310" viewBox="0 0 443 310" fill="none" xmlns="http://www.w3.org/2000/svg"> 59 <g id="four-protocols"> 60 <mask id="protocols-mask" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="443" height="310"> 61 <rect x="0.5" y="0.5" width="442" height="309" fill="black" /> 62 </mask> 63 <g mask="url(#protocols-mask)"> 64 <path data-motion="protocol-top" d="M372.463 113.499L273.343 183.646L174.223 113.499L273.343 43.3526L372.463 113.499Z" stroke="var(--platform-flow-accent)" /> 65 <path data-motion="protocol-bottom" d="M372.467 275.014L273.343 345.672L174.218 275.014L273.343 204.356L372.467 275.014Z" stroke="var(--platform-flow-accent)" /> 66 <path d="M520.147 196.051L273.856 374.382L27.5645 196.051L273.856 17.7202L520.147 196.051Z" stroke="var(--platform-flow-line)" /> 67 <path data-motion="protocol-right" d="M482.191 194.513L383.071 264.66L283.951 194.513L383.071 124.367L482.191 194.513Z" stroke="var(--platform-flow-accent)" /> 68 <path data-motion="protocol-left" d="M263.765 194.513L165.154 264.658L66.5439 194.513L165.154 124.368L263.765 194.513Z" stroke="var(--platform-flow-accent)" /> 69 <g fill="var(--platform-flow-label)" font-family="var(--font-sans)" font-size="16" text-anchor="middle"> 70 <text data-motion="protocol-left"><tspan data-label="mqtt" x="165.154" y="199.676">MQTT</tspan></text> 71 <text data-motion="protocol-top"><tspan data-label="amqp" x="273.343" y="118.662">AMQP</tspan></text> 72 <text data-motion="protocol-right"><tspan data-label="kafka" x="383.071" y="199.676">Kafka</tspan></text> 73 <text data-motion="protocol-bottom"><tspan data-label="nats" x="273.343" y="280.69">NATS</tspan></text> 74 </g> 75 </g> 76 </g> 77</svg> 78</div></div><div class="border-t border-border p-7 sm:p-8"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Four Protocols</h3><p class="mt-3 text-sm leading-6 text-muted-foreground sm:text-[15px]">Unify MQTT, Kafka, AMQP and NATS.</p></div></article><article class="lg:col-span-8 platform-feature border-b border-r border-border"><div class="platform-flow-v2 relative w-full overflow-hidden bg-surface-subtle aspect-[888/320]" data-type="workload" aria-hidden="true" data-v-04d2de2f><div class="absolute inset-0" data-v-04d2de2f><svg width="888" height="320" viewBox="0 0 888 320" fill="none" xmlns="http://www.w3.org/2000/svg"> 79 <g id="any-workload"> 80 <path d="M883.333 209.689C828.444 209.189 696.933 191.489 610 148.689C501.333 95.1894 421.333 82.8302 253.333 148.689C173.001 180.181 52.667 207.689 3.333 209.689" stroke="var(--platform-flow-line)" /> 81 <path d="M883.333 103.811C828.444 104.311 696.933 122.011 610 164.811C501.333 218.311 379.333 227.5 253.333 164.811C177.799 127.23 52.667 105.811 3.333 103.811" stroke="var(--platform-flow-line)" /> 82 <circle data-motion="workload-left" cx="109.333" cy="194" r="7" fill="var(--platform-flow-accent)" /> 83 <circle data-motion="workload-right" cx="516" cy="113" r="7" fill="var(--platform-flow-accent)" /> 84 </g> 85</svg> 86</div></div><div class="border-t border-border p-7 sm:p-8"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Any Workload</h3><p class="mt-3 text-sm leading-6 text-muted-foreground sm:text-[15px]">Handle OT, IT, IoT, and AI workloads.</p></div></article><article class="lg:col-span-4 platform-feature border-b border-r border-border"><div class="platform-flow-v2 relative w-full overflow-hidden bg-surface-subtle aspect-[444/320]" data-type="tenancy" aria-hidden="true" data-v-04d2de2f><div class="absolute inset-0" data-v-04d2de2f><svg width="444" height="320" viewBox="0 0 444 320" fill="none" xmlns="http://www.w3.org/2000/svg"> 87 <g id="multi-tenancy"> 88 <mask id="tenancy-mask" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="444" height="320"> 89 <rect x="0.5" y="0.5" width="443" height="319" fill="black" /> 90 </mask> 91 <g mask="url(#tenancy-mask)"> 92 <g data-motion="tenancy-layer-bottom"> 93 <path d="M405.16 230L222.5 365.377L39.8389 230L222.5 94.6221L405.16 230Z" stroke="var(--platform-flow-line)" /> 94 </g> 95 <g data-motion="tenancy-layer-middle">
96 <path d="M405.158 179.5L222.5 314.378L39.8408 179.5L222.5 44.6211L405.158 179.5Z" stroke="var(--platform-flow-line)" /> 97 </g> 98 <g data-motion="tenancy-layer-top"> 99 <path d="M405.16 129L222.5 264.377L39.8389 129L222.5 -6.37793L405.16 129Z" stroke="var(--platform-flow-line)" /> 100 </g> 101 <g data-motion="tenancy-content"> 102 <g stroke="var(--foreground)" stroke-width="2.66667" stroke-linecap="round" stroke-linejoin="round"> 103 <path d="M237.5 150.333C237.499 149.749 237.345 149.175 237.053 148.669C236.76 148.162 236.34 147.742 235.833 147.45L224.167 140.783C223.66 140.491 223.085 140.337 222.5 140.337C221.915 140.337 221.34 140.491 220.833 140.783L209.167 147.45C208.66 147.742 208.24 148.162 207.947 148.669C207.655 149.175 207.501 149.749 207.5 150.333V163.667C207.501 164.251 207.655 164.825 207.947 165.331C208.24 165.837 208.66 166.258 209.167 166.55L220.833 173.217C221.34 173.509 221.915 173.663 222.5 173.663C223.085 173.663 223.66 173.509 224.167 173.217L235.833 166.55C236.34 166.258 236.76 165.837 237.053 165.331C237.345 164.825 237.499 164.251 237.5 163.667V150.333Z" /> 104 <path d="M208 148.667L222.5 157M222.5 157L237 148.667M222.5 157V173.667" /> 105 </g> 106 <text fill="var(--platform-flow-label)" font-family="var(--font-sans)" font-size="16" text-anchor="middle"> 107 <tspan data-label="namespace" x="222.5" y="202">Namespace</tspan> 108 </text> 109 </g> 110 </g> 111 </g> 112</svg> 113</div></div><div class="border-t border-border p-7 sm:p-8"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Multi-Tenancy</h3><p class="mt-3 text-sm leading-6 text-muted-foreground sm:text-[15px]">Manage brokers for your org in one place.</p></div></article><!--]--></div></section><div class="mt-24 border-t border-border sm:mt-28 lg:mt-32" aria-hidden="true"></div><section class="container pt-20 sm:pt-24 lg:pt-28"><div><div class="mx-auto max-w-3xl text-center lg:mx-0 lg:text-left"><h2 class="mb-4 text-foreground text-2xl sm:text-3xl font-normal leading-[1.2] tracking-[-0.025em]"><!--[-->FlowMQ Architecture<!--]--></h2><p class="mb-8 text-base leading-relaxed text-muted-foreground mx-auto max-w-2xl lg:mx-0"><!--[-->FlowMQ adopts an unbundled architecture that fully decouples metadata services, stateless brokers, and S3-based storage.<!--]--></p></div><div class="mt-12 lg:mt-16"><!--[--><div class="relative hidden overflow-hidden border border-border/60 lg:block" style="height:492px;"><span></span></div><div class="space-y-5 lg:hidden"><div class="grid grid-cols-2 border-l border-t border-border"><!--[--><div class="flex items-center gap-2.5 border-b border-r border-border bg-card p-3 sm:p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-4 shrink-0 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M10.657 23.994h-9.45A1.21 1.21 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 10.386m7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 18.121 8.044 18.192 17.956m4.53 0h-.97C21.754 12.071 11.995 2.407 0 2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 14.508v8.291c0 .663-.544 1.195-1.207 1.195M16.713.006h6.092A1.19 1.19 0 0 1 24 1.2v5.914c-.91-1.242-2.046-2.65-3.158-3.762C19.588 2.11 18.122.987 16.714.005Z"/></svg><div class="flex min-w-0 items-center gap-1 whitespace-nowrap text-[11px] sm:text-xs"><span class="font-medium text-foreground">MQTT</span><span class="text-muted-foreground" aria-hidden="true">|</span><span class="text-muted-foreground">Devices</span></div></div><div class="flex items-center gap-2.5 border-b border-r border-border bg-card p-3 sm:p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 shrink-0 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7"/><rect width="20" height="16" x="2" y="4" rx="2"/></g></svg><div class="flex min-w-0 items-center gap-1 whitespace-nowrap text-[11px] sm:text-xs"><span class="font-medium text-foreground">AMQP</span><span class="text-muted-foreground" aria-hidden="true">|</span><span class="text-muted-foreground">Queues</span></div></div><div class="flex items-center gap-2.5 border-b border-r border-border bg-card p-3 sm:p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-4 shrink-0 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24">
113<path fill="currentColor" d="M9.71 2.136a1.43 1.43 0 0 0-2.047 0h-.007a1.48 1.48 0 0 0-.421 1.042c0 .41.161.777.422 1.039l.007.007c.257.264.616.426 1.019.426c.404 0 .766-.162 1.027-.426l.003-.007c.261-.262.421-.629.421-1.039c0-.408-.159-.777-.421-1.042zM8.683 22.295c.404 0 .766-.167 1.027-.429l.003-.008c.261-.261.421-.631.421-1.036c0-.41-.159-.778-.421-1.044H9.71a1.42 1.42 0 0 0-1.027-.432a1.4 1.4 0 0 0-1.02.432h-.007c-.26.266-.422.634-.422 1.044c0 .406.161.775.422 1.036l.007.008c.258.262.617.429 1.02.429m7.89-4.462c.359-.096.683-.33.882-.684l.027-.052a1.47 1.47 0 0 0 .114-1.067a1.45 1.45 0 0 0-.675-.896l-.021-.014a1.43 1.43 0 0 0-1.078-.132c-.36.091-.684.335-.881.686c-.2.349-.241.75-.146 1.119c.099.363.33.691.675.896h.002c.346.203.737.239 1.101.144m-6.405-7.342a2.08 2.08 0 0 0-1.485-.627c-.58 0-1.103.242-1.482.627c-.378.385-.612.916-.612 1.507s.233 1.124.612 1.514a2.08 2.08 0 0 0 2.967 0c.379-.39.612-.923.612-1.514s-.233-1.122-.612-1.507m-.835-2.51c.843.141 1.6.552 2.178 1.144h.004c.092.093.182.196.265.299l1.446-.851a3.2 3.2 0 0 1-.047-1.808a3.15 3.15 0 0 1 1.456-1.926l.025-.016a3.06 3.06 0 0 1 2.345-.306c.77.21 1.465.721 1.898 1.482v.002c.431.757.518 1.626.313 2.408a3.15 3.15 0 0 1-1.456 1.928l-.198.118h-.02a3.1 3.1 0 0 1-2.154.201a3.13 3.13 0 0 1-1.514-.944l-1.444.848a4.16 4.16 0 0 1 0 2.879l1.444.846c.413-.47.939-.789 1.514-.944a3.04 3.04 0 0 1 2.371.319l.048.023v.002a3.17 3.17 0 0 1 1.408 1.906a3.22 3.22 0 0 1-.313 2.405l-.026.053l-.003-.005a3.15 3.15 0 0 1-1.867 1.436a3.1 3.1 0 0 1-2.371-.318v-.006a3.16 3.16 0 0 1-1.456-1.927a3.2 3.2 0 0 1 .047-1.805l-1.446-.848a4 4 0 0 1-.265.294l-.004.005a3.94 3.94 0 0 1-2.178
1131.138v1.699a3.1 3.1 0 0 1 1.56.862l.002.004c.565.572.914 1.368.914 2.243c0 .873-.35 1.664-.914 2.239l-.002.009a3.1 3.1 0 0 1-2.21.931a3.1 3.1 0 0 1-2.206-.93h-.002v-.009a3.2 3.2 0 0 1-.916-2.239c0-.875.35-1.672.916-2.243v-.004h.002a3.1 3.1 0 0 1 1.558-.862v-1.699a3.93 3.93 0 0 1-2.176-1.138l-.006-.005a4.1 4.1 0 0 1-1.173-2.874c0-1.122.452-2.136 1.173-2.872h.006a3.95 3.95 0 0 1 2.176-1.144V6.289a3.14 3.14 0 0 1-1.558-.864h-.002v-.004a3.2 3.2 0 0 1-.916-2.243c0-.871.35-1.669.916-2.243l.002-.002A3.08 3.08 0 0 1 8.683 0c.861 0 1.641.355 2.21.932v.002h.002c.565.574.914 1.372.914 2.243c0 .876-.35 1.667-.914 2.243l-.002.005a3.14 3.14 0 0 1-1.56.864zm8.121-1.129l-.012-.019a1.45 1.45 0 0 0-.87-.668a1.43 1.43 0 0 0-1.103.146h.002c-.347.2-.58.529-.677.896c-.095.365-.054.768.146 1.119l.007.009c.2.347.519.579.874.673c.357.103.755.059 1.098-.144l.019-.009a1.47 1.47 0 0 0 .657-.885a1.5 1.5 0 0 0-.141-1.118"/></svg><div class="flex min-w-0 items-center gap-1 whitespace-nowrap text-[11px] sm:text-xs"><span class="font-medium text-foreground">Kafka</span><span class="text-muted-foreground" aria-hidden="true">|</span><span class="text-muted-foreground">Streams</span></div></div><div class="flex items-center gap-2.5 border-b border-r border-border bg-card p-3 sm:p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-4 shrink-0 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M12.004 0H.404v18.807h9.938l1.714 1.602v-.026L15.966 24v-5.193h7.63V0zm7.578 14.45H15.38L6.898 6.519v7.93H4.116V4.376h4.349l8.344 7.784V4.375h2.773z"/></svg><div class="flex min-w-0 items-center gap-1 whitespace-nowrap text-[11px] sm:text-xs"><span class="font-medium text-foreground">NATS</span><span class="text-muted-foreground" aria-hidden="true">|</span><span class="text-muted-foreground">Pub/Sub</span></div></div><!--]--></div><div class="flex justify-center text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 5v14m7-7l-7 7l-7-7"/></svg></div><div class="border border-brand/25 bg-brand/[0.025] p-4"><div class="relative border border-border bg-card p-3"><div class="flex h-5 items-center gap-2 whitespace-nowrap text-sm font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-brand" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3"/></svg> Control Plane</div><div class="mt-2 grid grid-cols-2 gap-2"><!--[--><div class="flex items-center border border-border bg-card px-3 py-2 text-xs text-foreground">Namespace</div><div class="flex items-center border border-border bg-card px-3 py-2 text-xs text-foreground">Metadata</div><div class="flex items-center border border-border bg-card px-3 py-2 text-xs text-foreground">Coordinator</div><div class="flex items-center border border-border bg-card px-3 py-2 text-xs text-foreground">Security</div><!--]--></div></div><div class="flex h-5 justify-center"><span class="border-l border-border"></span></div><div class="relative border border-border bg-card p-3"><div class="flex h-5 items-center gap-2 whitespace-nowrap text-sm font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-brand" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="6" height="6" x="16" y="16" rx="1"/><rect width="6" height="6" x="2" y="16" rx="1"/><rect width="6" height="6" x="9" y="2" rx="1"/><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3m-7-4V8"/></g></svg> Stateless Brokers</div><div class="relative mt-3 grid grid-cols-3 gap-2"><span class="absolute left-[16%] right-[16%] top-5 border-t border-border"></span><!--[--><div class="relative z-10 flex h-10 items-center justify-center gap-1.5 border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-3.5 shrink-0 [&
113_*]:stroke-[1.6]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><path d="M6 6h.01M6 18h.01"/></g></svg><span class="whitespace-nowrap font-mono text-[10px]">Broker 1</span></div><div class="relative z-10 flex h-10 items-center justify-center gap-1.5 border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-3.5 shrink-0 [&_*]:stroke-[1.6]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><path d="M6 6h.01M6 18h.01"/></g></svg><span class="whitespace-nowrap font-mono text-[10px]">Broker 2</span></div><div class="relative z-10 flex h-10 items-center justify-center gap-1.5 border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-3.5 shrink-0 [&_*]:stroke-[1.6]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><path d="M6 6h.01M6 18h.01"/></g></svg><span class="whitespace-nowrap font-mono text-[10px]">Broker 3</span></div><!--]--></div></div><div class="flex h-5 justify-center"><span class="border-l border-border"></span></div><div class="relative border border-border bg-card p-3"><div class="flex h-5 items-center gap-2 whitespace-nowrap text-sm font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-brand" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14a9 3 0 0 0 18 0V5"/><path d="M3 12a9 3 0 0 0 18 0"/></g></svg> Data Storage (S3)</div><div class="mt-2 grid grid-cols-4 gap-2"><!--[--><span class="flex h-10 items-center justify-center border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5 [&_path]:stroke-current [&_path]:stroke-[0.35]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="m20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071c-.16.031-.562.046-1.474-.176m-2.174 7.988l-.005.073c0 .084-.207.405-1.124.768a10 10 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504c-4.612 0-7.412-1.184-7.412-1.704l-.005-.073L1.81 5.602q.203.117.432.227q.064.03.128.057q.2.093.417.18l.179.069q.232.087.478.168l.13.043q.311.097.646.187l.176.044q.263.066.534.127a23 23 0 0 0 .843.17l.121.023q.378.067.768.122q.107.016.216.03q.299.04.604.077l.24.027q.366.04.74.07l.081.009q.413.033.83.056l.233.012q.316.015.633.025a33 33 0 0 0 2.795-.026l.232-.011q.417-.023.83-.056l.08-.008q.375-.03.742-.072l.238-.026q.307-.036.609-.077l.211-.03q.392-.056.772-.122l.111-.02q.323-.06.634-.125l.212-.047q.279-.062.546-.13l.166-.042q.338-.09.654-.189l.115-.038a11 11 0 0 0 .493-.173q.087-.032.17-.066q.225-.089.43-.185q.059-.025.116-.052q.23-.11.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088s.488 1.089 1.088 1.089c.196 0 .378-.056.537-.148c1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101c-.015.028-.026.057-.047.087c-.024.033-.058.068-.09.102c-.028.03-.051.06-.084.09c-.038.035-.087.07-.133.105c-.04.03-.074.06-.119.091c-.053.036-.116.071-.177.107c-.05.03-.095.06-.15.09c-.068.036-.147.073-.222.11c-.059.028-.114.057-.177.085c-.084.038-.177.074-.268.111c-.068.027-.13.054-.203.082c-.097.036-.205.072-.31.107c-.075.026-.148.053-.228.079c-.111.035-.233.069-.35.103c-.085.024-.165.05-.253.073c-.124.034-.258.065-.389.098c-.093.022-.181.046-.278.068c-.139.032-.287.061-.433.091c-.098.02-.191.041-.293.06c-.155.03-.32.057-.482.084c-.1.018-.198.036-.302.052c-.166.026-.342.048-.515.072c-.11.014-.213.03-.325.044c-.181.023-.372.041-.56.06q-.163.019-.332.036c-.188.016-.386.029-.58.043c-.122.009-.24.02-.364.028c-.207.012-.422.02-.635.028c-.12.005-.234.012-.354.016a36 36 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016c-.214-.008-.43-.016-.637-.028c-.122-.008-.238-.02-.36-.027c-.195-.015-.394-.028-.584-.044c-.11-.01-.215-.024-.324-.035c-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073c-.1-.015-.192-.033-.29-.05c-.167-.028-.335-.055-.494-.086c-.096-.018-.183-.038-.276-.056c-.151-.032-.305-.062-.45-.095c-.09-.02-.173-.043-.26-.064c-.138-.034-.277-.06
1137-.407-.102c-.082-.022-.157-.046-.235-.069a12 12 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073c-.11-.037-.223-.075-.325-.113c-.067-.025-.125-.051-.188-.077c-.096-.038-.195-.076-.282-.115c-.06-.027-.11-.054-.166-.08c-.08-.039-.162-.077-.233-.116c-.052-.028-.094-.055-.142-.084c-.063-.038-.13-.075-.185-.113c-.043-.029-.075-.058-.113-.086c-.048-.037-.098-.073-.139-.11c-.032-.029-.054-.057-.08-.087c-.033-.035-.069-.07-.093-.104c-.02-.03-.031-.058-.046-.086c-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736m12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963-7.16l.005-.073C22.16 1.581 16.447 0 11.32 0C6.194 0 .482 1.581.482 3.851l.005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75c1.805 0 3.615-.188 5.098-.531c.598-.138 1.133-.3 1.592-.48c1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197c.54 0 .902-.137 1.134-.413a.96.96 0 0 0 .21-.804Z"/></svg></span><span class="flex h-10 items-center justify-center border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5 [&_path]:stroke-current [&_path]:stroke-[0.35]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="m20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071c-.16.031-.562.046-1.474-.176m-2.174 7.988l-.005.073c0 .084-.207.405-1.124.768a10 10 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504c-4.612 0-7.412-1.184-7.412-1.704l-.005-.073L1.81 5.602q.203.117.432.227q.064.03.128.057q.2.093.417.18l.179.069q.232.087.478.168l.13.043q.311.097.646.187l.176.044q.263.066.534.127a23 23 0 0 0 .843.17l.121.023q.378.067.768.122q.107.016.216.03q.299.04.604.077l.24.027q.366.04.74.07l.081.009q.413.033.83.056l.233.012q.316.015.633.025a33 33 0 0 0 2.795-.026l.232-.011q.417-.023.83-.056l.08-.008q.375-.03.742-.072l.238-.026q.307-.036.609-.077l.211-.03q.392-.056.772-.122l.111-.02q.323-.06.634-.125l.212-.047q.279-.062.546-.13l.166-.042q.338-.09.654-.189l.115-.038a11 11 0 0 0 .493-.173q.087-.032.17-.066q.225-.089.43-.185q.059-.025.116-.052q.23-.11.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088s.488 1.089 1.088 1.089c.196 0 .378-.056.537-.148c1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101c-.015.028-.026.057-.047.087c-.024.033-.058.068-.09.102c-.028.03-.051.06-.084.09c-.038.035-.087.07-.133.105c-.04.03-.074.06-.119.091c-.053.036-.116.071-.177.107c-.05.03-.095.06-.15.09c-.068.036-.147.073-.222.11c-.059.028-.114.057-.177.085c-.084.038-.177.074-.268.111c-.068.027-.13.054-.203.082c-.097.036-.205.072-.31.107c-.075.026-.148.053-.228.079c-.111.035-.233.069-.35.103c-.085.024-.165.05-.253.073c-.124.034-.258.065-.389.098c-.093.022-.181.046-.278.068c-.139.032-.287.061-.433.091c-.098.02-.191.041-.293.06c-.155.03-.32.057-.482.084c-.1.018-.198.036-.302.052c-.166.026-.342.048-.515.072c-.11.014-.213.03-.325.044c-.181.023-.372.041-.56.06q-.163.019-.332.036c-.188.016-.386.029-.58.043c-.122.009-.24.02-.364.028c-.207.012-.422.02-.635.028c-.12.005-.234.012-.354.016a36 36 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016c-.214-.008-.43-.016-.637-.028c-.122-.008-.238-.02-.36-.027c-.195-.015-.394-.028-.584-.044c-.11-.01-.215-.024-.324-.035c-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073c-.1-.015-.192-.033-.29-.05c-.167-.028-.335-.055-.494-.086c-.096-.018-.183-.038-.276-.056c-.151-.032-.305-.062-.45-.095c-.09-.02-.173-.043-.26-.064c-.138-.034-.277-.067-.407-.102c-.082-.022-.157-.046-.235-.069a12 12 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073c-.11-.037-.223-.075-.325-.113c-.067-.025-.125-.051-.188-.077c-.096-.038-.195-.076-.282-.115c-.06-.027-.11-.054-.166-.08c-.08-.039-.162-.077-.233-.116c-.052-.028-.094-.055-.142-.084c-.063-.038-.13-.075-.185-.113c-.043-.029-.075-.058-.113-.086c-.048-.037-.098-.073-.139-.11c-.032-.029-.054-.057-.08-.087c-.033-.035-.069-.07-.093-.104c-.02-.03-.031-.058-.046-.086c-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736m12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963
113-7.16l.005-.073C22.16 1.581 16.447 0 11.32 0C6.194 0 .482 1.581.482 3.851l.005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75c1.805 0 3.615-.188 5.098-.531c.598-.138 1.133-.3 1.592-.48c1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197c.54 0 .902-.137 1.134-.413a.96.96 0 0 0 .21-.804Z"/></svg></span><span class="flex h-10 items-center justify-center border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5 [&_path]:stroke-current [&_path]:stroke-[0.35]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="m20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071c-.16.031-.562.046-1.474-.176m-2.174 7.988l-.005.073c0 .084-.207.405-1.124.768a10 10 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504c-4.612 0-7.412-1.184-7.412-1.704l-.005-.073L1.81 5.602q.203.117.432.227q.064.03.128.057q.2.093.417.18l.179.069q.232.087.478.168l.13.043q.311.097.646.187l.176.044q.263.066.534.127a23 23 0 0 0 .843.17l.121.023q.378.067.768.122q.107.016.216.03q.299.04.604.077l.24.027q.366.04.74.07l.081.009q.413.033.83.056l.233.012q.316.015.633.025a33 33 0 0 0 2.795-.026l.232-.011q.417-.023.83-.056l.08-.008q.375-.03.742-.072l.238-.026q.307-.036.609-.077l.211-.03q.392-.056.772-.122l.111-.02q.323-.06.634-.125l.212-.047q.279-.062.546-.13l.166-.042q.338-.09.654-.189l.115-.038a11 11 0 0 0 .493-.173q.087-.032.17-.066q.225-.089.43-.185q.059-.025.116-.052q.23-.11.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088s.488 1.089 1.088 1.089c.196 0 .378-.056.537-.148c1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101c-.015.028-.026.057-.047.087c-.024.033-.058.068-.09.102c-.028.03-.051.06-.084.09c-.038.035-.087.07-.133.105c-.04.03-.074.06-.119.091c-.053.036-.116.071-.177.107c-.05.03-.095.06-.15.09c-.068.036-.147.073-.222.11c-.059.028-.114.057-.177.085c-.084.038-.177.074-.268.111c-.068.027-.13.054-.203.082c-.097.036-.205.072-.31.107c-.075.026-.148.053-.228.079c-.111.035-.233.069-.35.103c-.085.024-.165.05-.253.073c-.124.034-.258.065-.389.098c-.093.022-.181.046-.278.068c-.139.032-.287.061-.433.091c-.098.02-.191.041-.293.06c-.155.03-.32.057-.482.084c-.1.018-.198.036-.302.052c-.166.026-.342.048-.515.072c-.11.014-.213.03-.325.044c-.181.023-.372.041-.56.06q-.163.019-.332.036c-.188.016-.386.029-.58.043c-.122.009-.24.02-.364.028c-.207.012-.422.02-.635.028c-.12.005-.234.012-.354.016a36 36 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016c-.214-.008-.43-.016-.637-.028c-.122-.008-.238-.02-.36-.027c-.195-.015-.394-.028-.584-.044c-.11-.01-.215-.024-.324-.035c-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073c-.1-.015-.192-.033-.29-.05c-.167-.028-.335-.055-.494-.086c-.096-.018-.183-.038-.276-.056c-.151-.032-.305-.062-.45-.095c-.09-.02-.173-.043-.26-.064c-.138-.034-.277-.067-.407-.102c-.082-.022-.157-.046-.235-.069a12 12 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073c-.11-.037-.223-.075-.325-.113c-.067-.025-.125-.051-.188-.077c-.096-.038-.195-.076-.282-.115c-.06-.027-.11-.054-.166-.08c-.08-.039-.162-.077-.233-.116c-.052-.028-.094-.055-.142-.084c-.063-.038-.13-.075-.185-.113c-.043-.029-.075-.058-.113-.086c-.048-.037-.098-.073-.139-.11c-.032-.029-.054-.057-.08-.087c-.033-.035-.069-.07-.093-.104c-.02-.03-.031-.058-.046-.086c-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736m12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963-7.16l.005-.073C22.16 1.581 16.447 0 11.32 0C6.194 0 .482 1.581.482 3.851l.005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75c1.805 0 3.615-.188 5.098-.531c.598-.138 1.133-.3 1.592-.48c1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197c.54 0 .902-.137 1.134-.413a.96.96 0 0 0 .21-.804Z"/></svg></span><span class="flex h-10 items-center justify-center border border-border bg-card text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-5 [&_path]:stroke-current [&_path]:stroke-[0.35]" style="" width="1em" height="1em" viewBox="0 0 24 24">
113<path fill="currentColor" d="m20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071c-.16.031-.562.046-1.474-.176m-2.174 7.988l-.005.073c0 .084-.207.405-1.124.768a10 10 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504c-4.612 0-7.412-1.184-7.412-1.704l-.005-.073L1.81 5.602q.203.117.432.227q.064.03.128.057q.2.093.417.18l.179.069q.232.087.478.168l.13.043q.311.097.646.187l.176.044q.263.066.534.127a23 23 0 0 0 .843.17l.121.023q.378.067.768.122q.107.016.216.03q.299.04.604.077l.24.027q.366.04.74.07l.081.009q.413.033.83.056l.233.012q.316.015.633.025a33 33 0 0 0 2.795-.026l.232-.011q.417-.023.83-.056l.08-.008q.375-.03.742-.072l.238-.026q.307-.036.609-.077l.211-.03q.392-.056.772-.122l.111-.02q.323-.06.634-.125l.212-.047q.279-.062.546-.13l.166-.042q.338-.09.654-.189l.115-.038a11 11 0 0 0 .493-.173q.087-.032.17-.066q.225-.089.43-.185q.059-.025.116-.052q.23-.11.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088s.488 1.089 1.088 1.089c.196 0 .378-.056.537-.148c1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101c-.015.028-.026.057-.047.087c-.024.033-.058.068-.09.102c-.028.03-.051.06-.084.09c-.038.035-.087.07-.133.105c-.04.03-.074.06-.119.091c-.053.036-.116.071-.177.107c-.05.03-.095.06-.15.09c-.068.036-.147.073-.222.11c-.059.028-.114.057-.177.085c-.084.038-.177.074-.268.111c-.068.027-.13.054-.203.082c-.097.036-.205.072-.31.107c-.075.026-.148.053-.228.079c-.111.035-.233.069-.35.103c-.085.024-.165.05-.253.073c-.124.034-.258.065-.389.098c-.093.022-.181.046-.278.068c-.139.032-.287.061-.433.091c-.098.02-.191.041-.293.06c-.155.03-.32.057-.482.084c-.1.018-.198.036-.302.052c-.166.026-.342.048-.515.072c-.11.014-.213.03-.325.044c-.181.023-.372.041-.56.06q-.163.019-.332.036c-.188.016-.386.029-.58.043c-.122.009-.24.02-.364.028c-.207.012-.422.02-.635.028c-.12.005-.234.012-.354.016a36 36 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016c-.214-.008-.43-.016-.637-.028c-.122-.008-.238-.02-.36-.027c-.195-.015-.394-.028-.584-.044c-.11-.01-.215-.024-.324-.035c-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073c-.1-.015-.192-.033-.29-.05c-.167-.028-.335-.055-.494-.086c-.096-.018-.183-.038-.276-.056c-.151-.032-.305-.062-.45-.095c-.09-.02-.173-.043-.26-.064c-.138-.034-.277-.067-.407-.102c-.082-.022-.157-.046-.235-.069a12 12 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073c-.11-.037-.223-.075-.325-.113c-.067-.025-.125-.051-.188-.077c-.096-.038-.195-.076-.282-.115c-.06-.027-.11-.054-.166-.08c-.08-.039-.162-.077-.233-.116c-.052-.028-.094-.055-.142-.084c-.063-.038-.13-.075-.185-.113c-.043-.029-.075-.058-.113-.086c-.048-.037-.098-.073-.139-.11c-.032-.029-.054-.057-.08-.087c-.033-.035-.069-.07-.093-.104c-.02-.03-.031-.058-.046-.086c-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736m12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963-7.16l.005-.073C22.16 1.581 16.447 0 11.32 0C6.194 0 .482 1.581.482 3.851l.005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75c1.805 0 3.615-.188 5.098-.531c.598-.138 1.133-.3 1.592-.48c1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197c.54 0 .902-.137 1.134-.413a.96.96 0 0 0 .21-.804Z"/></svg></span><!--]--></div></div></div><div class="flex justify-center text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 5v14m7-7l-7 7l-7-7"/></svg></div><div class="grid grid-cols-2 border-l border-t border-border"><!--[--><div class="flex items-center gap-3 border-b border-r border-border bg-card p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2m16 0h2m-7-1v2m-6-2v2"/></g></svg><span class="text-sm font-medium text-foreground">AI Agents</span></div><div class="flex items-center gap-3 border-b border-r border-border bg-card p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3zM7 16.5l-4.74-2.85M7 16.5l5-3m-5 3v5.17m5-8.17V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5zm5 3l-5-3m5 3l4.74-2.85M17 16.5v5.17"/><path d="M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3l5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0zM12 8L7.26 5.15M12 8l4.74-2.85M12 13.5V8"/></g></svg><span class="text-sm font-medium text-foreground">Applications</span></div><div class="flex items-center gap-3 border-b border-r border-border bg-card p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14a9 3 0 0 0 18 0V5"/><path d="M3 12a9 3 0 0 0 18 0"/></g></svg><span class="text-sm font-medium text-foreground">Data Lakes</span></div><div class="flex items-center gap-3 border-b border-r border-border bg-card p-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4 text-foreground" style="" width="1em" height="1em" viewBox="0 0 24 24">
113<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9"/></svg><span class="text-sm font-medium text-foreground">Cloud Services</span></div><!--]--></div></div><!--]--></div><div class="mt-8 grid border-l border-t border-border sm:mt-10 sm:grid-cols-2 lg:grid-cols-3"><!--[--><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2"/><rect width="8" height="8" x="14" y="2" rx="1"/></g></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Scalable</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Decouple metadata, compute, and storage to grow connections and throughput independently.</p></article><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8"/></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Limitless</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Store unlimited topics, partitions, and queues in cloud object storage with zero disk or metadata constraints.</p></article><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 12a9 9 0 0 1 9-9a9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5m5 4a9 9 0 0 1-9 9a9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></g></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Stateless</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Swap or recover broker nodes automatically in secondsâwith zero partition rebalancing or state migration lag.</p></article><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m15 15l6 6M15 9l6-6m0 13v5h-5m5-13V3h-5M3 16v5h5m
113-5 0l6-6M3 8V3h5m1 6L3 3"/></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Elastic</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Scale compute dynamically from zero to millions of connections or hundreds of GB/s throughput in seconds.</p></article><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m12 14l4-4M3.34 19a10 10 0 1 1 17.32 0"/></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Deterministic</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Deliver guaranteed, predictable ultra-low latency across all protocols using a single-threaded message routing engine.</p></article><article class="group border-b border-r border-border px-6 py-5 transition-colors duration-200 hover:bg-muted/20 sm:p-6 lg:px-7 lg:py-6"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-5 text-muted-foreground transition-colors duration-200 group-hover:text-foreground [&_*]:stroke-[1.5]" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 20v2m0-20v2m5 16v2m0-20v2M2 12h2m-2 5h2M2 7h2m16 5h2m-2 5h2M20 7h2M7 20v2M7 2v2"/><rect width="16" height="16" x="4" y="4" rx="2"/><rect width="8" height="8" x="8" y="8" rx="1"/></g></svg><h3 class="mt-4 text-lg font-medium tracking-[-0.02em] text-foreground">Efficient</h3><p class="mt-2.5 text-sm leading-6 text-muted-foreground sm:text-[15px]">Slash infrastructure TCO by up to 90% with a high-performance C++ core engine and low-cost S3 object storage.</p></article><!--]--></div></div></section><div class="mt-24 border-t border-border sm:mt-28 lg:mt-32" aria-hidden="true"></div><section class="container pt-20 sm:pt-24 lg:pt-28"><div class="grid gap-12 lg:grid-cols-12 lg:gap-14 xl:gap-16"><div class="mx-auto max-w-2xl text-center lg:col-span-5 lg:mx-0 lg:max-w-none lg:text-left"><div class="lg:sticky lg:top-28 lg:pt-1"><h2 class="mb-4 text-foreground text-2xl sm:text-3xl font-normal leading-[1.2] tracking-[-0.025em]"><!--[-->Your Existing Stack, Plugged In.<!--]--></h2><div class="mx-auto mt-5 max-w-lg space-y-3 text-sm leading-6 text-muted-foreground lg:mx-0"><!--[--><p>FlowMQ runs a fully managed cloud service with zero local setup required. Simply connect to our endpoint using the language-native SDKs you already trust.</p><p>Publish telemetry over MQTT, produce streams into Kafka partitions, route AMQP enterprise exchanges, and broadcast over NATS subjects â all under one runtime engine.</p><!--]--></div><a href="https://docs.flowmq.io/sdks/mqtt/overview.html" rel="noopener" target="_blank" class="mt-7 inline-flex items-center gap-2 text-sm font-normal text-foreground underline-offset-4 transition-opacity hover:opacity-65"><!--[-->Explore Our SDK References <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"/></svg><!--]--></a></div></div><div class="mx-auto min-w-0 w-full max-w-3xl lg:col-span-7 lg:max-w-none"><div class="border border-border bg-background"><div class="flex min-w-0 items-stretch justify-between border-b border-border bg-surface-subtle"><div class="flex min-w-0 overflow-x-auto" role="tablist"><!--[--><button type="button" role="tab" aria-selected="true" class="bg-background text-foreground h-11 shrink-0 border-r border-border px-4 font-mono text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">MQTT</button><button type="button" role="tab" aria-selected="false" class="text-muted-foreground hover:text-foreground h-11 shrink-0 border-r border-border px-4 font-mono text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">Kafka</button><button type="button" role="tab" aria-selected="false" class="text-muted-foreground hover:text-foreground h-11 shrink-0 border-r border-border px-4 font-mono text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">AMQP</button><button type="button" role="tab" aria-selected="false" class="text-muted-foreground hover:text-foreground h-11 shrink-0 border-r border-border px-4 font-mono text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">NATS</button><!--]--></div><span class="hidden shrink-0 items-center px-4 font-mono text-[11px] text-muted-foreground sm:flex">mqtt_publish.c</span></div><div class="relative overflow-x-auto p-5 sm:p-6"><div class="min-w-max font-mono text-xs leading-[1.65]"><div class="block [&_pre]:m-0 [&_pre]:bg-transparent! [&
113_pre]:p-0 dark:hidden"><pre class="shiki github-light" style="background-color:#fff;color:#24292e" tabindex="0"><code><span class="line"><span style="color:#6A737D">// Publish telemetry to FlowMQ Cloud Broker using Paho C</span></span> 114<span class="line"><span style="color:#D73A49">#include</span><span style="color:#032F62"> <stdio.h></span></span> 115<span class="line"><span style="color:#D73A49">#include</span><span style="color:#032F62"> <string.h></span></span> 116<span class="line"><span style="color:#D73A49">#include</span><span style="color:#032F62"> "MQTTClient.h"</span></span> 117<span class="line"></span> 118<span class="line"><span style="color:#D73A49">int</span><span style="color:#6F42C1"> main</span><span style="color:#24292E">(</span><span style="color:#D73A49">void</span><span style="color:#24292E">)</span></span> 119<span class="line"><span style="color:#24292E">{</span></span> 120<span class="line"><span style="color:#D73A49"> const</span><span style="color:#D73A49"> char</span><span style="color:#D73A49"> *</span><span style="color:#24292E">url </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "tcp://fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:1883"</span><span style="color:#24292E">;</span></span> 121<span class="line"><span style="color:#24292E"> MQTTClient client;</span></span> 122<span class="line"><span style="color:#24292E"> MQTTClient_connectOptions conn_opts </span><span style="color:#D73A49">=</span><span style="color:#24292E"> MQTTClient_connectOptions_initializer;</span></span> 123<span class="line"><span style="color:#24292E"> MQTTClient_message pubmsg </span><span style="color:#D73A49">=</span><span style="color:#24292E"> MQTTClient_message_initializer;</span></span> 124<span class="line"><span style="color:#24292E"> MQTTClient_deliveryToken token;</span></span> 125<span class="line"></span> 126<span class="line"><span style="color:#6F42C1"> MQTTClient_create</span><span style="color:#24292E">(</span><span style="color:#D73A49">&</span><span style="color:#24292E">client, url, </span><span style="color:#032F62">"agent-01"</span><span style="color:#24292E">, </span><span style="color:#005CC5">0</span><span style="color:#24292E">, </span><span style="color:#005CC5">NULL</span><span style="color:#24292E">);</span></span> 127<span class="line"><span style="color:#24292E"> conn_opts.username </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "token"</span><span style="color:#24292E">;</span></span> 128<span class="line"><span style="color:#24292E"> conn_opts.password </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "flow_secret_xyz"</span><span style="color:#24292E">;</span></span> 129<span class="line"></span> 130<span class="line"><span style="color:#D73A49"> if</span><span style="color:#24292E"> (</span><span style="color:#6F42C1">MQTTClient_connect</span><span style="color:#24292E">(client, </span><span style="color:#D73A49">&</span><span style="color:#24292E">conn_opts) </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> MQTTCLIENT_SUCCESS)</span></span> 131<span class="line"><span style="color:#D73A49"> return</span><span style="color:#D73A49"> -</span><span style="color:#005CC5">1</span><span style="color:#24292E">;</span></span> 132<span class="line"></span> 133<span class="line"><span style="color:#24292E"> pubmsg.payload </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "{</span><span style="color:#005CC5">\"</span><span style="color:#032F62">status</span><span style="color:#005CC5">\"</span><span style="color:#032F62">:</span><span style="color:#005CC5">\"</span><span style="color:#032F62">active</span><span style="color:#005CC5">\"</span><span style="color:#032F62">}"</span><span style="color:#24292E">;</span></span> 134<span class="line"><span style="color:#24292E"> pubmsg.payloadlen </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (</span><span style="color:#D73A49">int</span><span style="color:#24292E">)</span><span style="color:#6F42C1">strlen</span><span style="color:#24292E">(pubmsg.payload);
134</span></span> 135<span class="line"><span style="color:#24292E"> pubmsg.qos </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">;</span></span> 136<span class="line"></span> 137<span class="line"><span style="color:#6F42C1"> MQTTClient_publishMessage</span><span style="color:#24292E">(client, </span><span style="color:#032F62">"telemetry/agents"</span><span style="color:#24292E">, </span><span style="color:#D73A49">&</span><span style="color:#24292E">pubmsg, </span><span style="color:#D73A49">&</span><span style="color:#24292E">token);</span></span> 138<span class="line"><span style="color:#6F42C1"> MQTTClient_waitForCompletion</span><span style="color:#24292E">(client, token, </span><span style="color:#005CC5">10000</span><span style="color:#D73A49">L</span><span style="color:#24292E">);</span></span> 139<span class="line"></span> 140<span class="line"><span style="color:#6F42C1"> MQTTClient_disconnect</span><span style="color:#24292E">(client, </span><span style="color:#005CC5">10000</span><span style="color:#24292E">);</span></span> 141<span class="line"><span style="color:#6F42C1"> MQTTClient_destroy</span><span style="color:#24292E">(</span><span style="color:#D73A49">&</span><span style="color:#24292E">client);</span></span> 142<span class="line"><span style="color:#D73A49"> return</span><span style="color:#005CC5"> 0</span><span style="color:#24292E">;</span></span> 143<span class="line"><span style="color:#24292E">}</span></span></code></pre></div><div class="hidden [&_pre]:m-0 [&_pre]:bg-transparent! [&_pre]:p-0 dark:block"><pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#6A737D">// Publish telemetry to FlowMQ Cloud Broker using Paho C</span></span> 144<span class="line"><span style="color:#F97583">#include</span><span style="color:#9ECBFF"> <stdio.h></span></span> 145<span class="line"><span style="color:#F97583">#include</span><span style="color:#9ECBFF"> <string.h></span></span> 146<span class="line"><span style="color:#F97583">#include</span><span style="color:#9ECBFF"> "MQTTClient.h"</span></span> 147<span class="line"></span> 148<span class="line"><span style="color:#F97583">int</span><span style="color:#B392F0"> main</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">void</span><span style="color:#E1E4E8">)</span></span> 149<span class="line"><span style="color:#E1E4E8">{</span></span> 150<span class="line"><span style="color:#F97583"> const</span><span style="color:#F97583"> char</span><span style="color:#F97583"> *</span><span style="color:#E1E4E8">url </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "tcp://fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:1883"</span><span style="color:#E1E4E8">;</span></span> 151<span class="line"><span style="color:#E1E4E8"> MQTTClient client;</span></span> 152<span class="line"><span style="color:#E1E4E8"> MQTTClient_connectOptions conn_opts </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> MQTTClient_connectOptions_initializer;</span></span> 153<span class="line"><span style="color:#E1E4E8"> MQTTClient_message pubmsg </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> MQTTClient_message_initializer;</span></span> 154<span class="line"><span style="color:#E1E4E8"> MQTTClient_deliveryToken token;</span></span> 155<span class="line"></span> 156<span class="line"><span style="color:#B392F0"> MQTTClient_create</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">&</span><span style="color:#E1E4E8">client, url, </span><span style="color:#9ECBFF">"agent-01"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">0</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">NULL</span><span style="color:#E1E4E8">);</span></span> 157<span class="line"><span style="color:#E1E4E8"> conn_opts.username </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "token"</span><span style="color:#E1E4E8">;</span></span> 158<span class="line"><span style="color:#E1E4E8"> conn_opts.password </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "flow_secret_xyz"</span><span style="color:#E1E4E8">;</span></span> 159<span class="line"></span> 160<span class="line"><span style="color:#F97583"> if</span><span style="color:#E1E4E8"> (</span><span style="color:#B392F0">MQTTClient_connect</span><span style="color:#E1E4E8">(client, </span><span style="color:#F97583">&</span><span style="color:#E1E4E8">conn_opts) </span><span style="color:#F97583">!=</span><span style="color:#E1E4E8"> MQTTCLIENT_SUCCESS)</span></span> 161<span class="line"><span style="color:#F97583"> return</span><span style="color:#F97583"> -</span><span style="color:#79B8FF">1</span><span style="color:#E1E4E8">;</span></span> 162<span class="line"></span> 163<span class="line"><span style="color:#E1E4E8"> pubmsg.payload </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "{</span><span style="color:#79B8FF">
163\"</span><span style="color:#9ECBFF">status</span><span style="color:#79B8FF">\"</span><span style="color:#9ECBFF">:</span><span style="color:#79B8FF">\"</span><span style="color:#9ECBFF">active</span><span style="color:#79B8FF">\"</span><span style="color:#9ECBFF">}"</span><span style="color:#E1E4E8">;</span></span> 164<span class="line"><span style="color:#E1E4E8"> pubmsg.payloadlen </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> (</span><span style="color:#F97583">int</span><span style="color:#E1E4E8">)</span><span style="color:#B392F0">strlen</span><span style="color:#E1E4E8">(pubmsg.payload);</span></span> 165<span class="line"><span style="color:#E1E4E8"> pubmsg.qos </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> 1</span><span style="color:#E1E4E8">;</span></span> 166<span class="line"></span> 167<span class="line"><span style="color:#B392F0"> MQTTClient_publishMessage</span><span style="color:#E1E4E8">(client, </span><span style="color:#9ECBFF">"telemetry/agents"</span><span style="color:#E1E4E8">, </span><span style="color:#F97583">&</span><span style="color:#E1E4E8">pubmsg, </span><span style="color:#F97583">&</span><span style="color:#E1E4E8">token);</span></span> 168<span class="line"><span style="color:#B392F0"> MQTTClient_waitForCompletion</span><span style="color:#E1E4E8">(client, token, </span><span style="color:#79B8FF">10000</span><span style="color:#F97583">L</span><span style="color:#E1E4E8">);</span></span> 169<span class="line"></span> 170<span class="line"><span style="color:#B392F0"> MQTTClient_disconnect</span><span style="color:#E1E4E8">(client, </span><span style="color:#79B8FF">10000</span><span style="color:#E1E4E8">);</span></span> 171<span class="line"><span style="color:#B392F0"> MQTTClient_destroy</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">&</span><span style="color:#E1E4E8">client);</span></span> 172<span class="line"><span style="color:#F97583"> return</span><span style="color:#79B8FF"> 0</span><span style="color:#E1E4E8">;</span></span> 173<span class="line"><span style="color:#E1E4E8">}</span></span></code></pre></div></div></div><div class="flex min-h-11 items-center justify-between gap-4 border-t border-border bg-surface-subtle px-4 py-2.5"><span class="min-w-0 truncate font-mono text-[10px] text-muted-foreground sm:text-[11px]">Dependency: libpaho-mqtt3c</span><button data-slot="button" data-variant="outline" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap rounded-none transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 py-2 h-8 shrink-0 gap-2 border-border bg-background px-3 font-mono text-[11px] font-normal shadow-none" type="button"><div class="relative flex size-full items-center justify-center"><span class="inline-flex items-center justify-center gap-2 whitespace-nowrap"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-3.5" style="" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></g></svg> Copy Code<!--]--></span><!----></div></button></div></div></div></div></section><div class="mt-24 border-t border-border sm:mt-28 lg:mt-32" aria-hidden="true"></div><section class="container pt-20 sm:pt-24 lg:pt-28" aria-labelledby="use-cases-title"><div class="mx-auto max-w-3xl text-center lg:mx-0 lg:text-left"><h2 class="mb-4 text-foreground text-2xl sm:text-3xl font-normal leading-[1.2] tracking-[-0.025em]" id="use-cases-title"><!--[-->FlowMQ Use Cases<!--]--></h2><p class="mb-8 text-base leading-relaxed text-muted-foreground mx-auto max-w-2xl lg:mx-0"><!--[-->From AI agentic workflows to Kafka replacement and diskless S3 data pipelines.<!--]--></p></div><div class="mt-12 grid border-l border-t border-border sm:grid-cols-2 lg:mt-16 lg:grid-cols-3"><!--[--><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">AI Agents</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">AI / Agentic</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Coordinate AI agents with A2A messaging, workflow orchestration, tool work queues, and S3 reasoning log retention.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">A2A · Tool Queues · S3 Context</p><!----></div></article><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Kafka Replacement</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">Core Infra</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Replace Kafka with a diskless, S3-based engine that uses no local NVMe/EBS disks or cross-AZ feesâcutting TCO up to 90%.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">Diskless · Zero Egress · 90% TCO</p><!----></div></article><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Data Lake Ingestion</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">Analytics</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Ingest high-throughput event streams directly into Snowflake, Databricks, ClickHouse, and Iceberg without complex ETL.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">Snowflake · Databricks · ClickHouse</p><!----></div></article><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">IoT & Edge Telemetry</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">Edge & IoT</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Collapse multi-tier MQTT and Kafka architectures into a single engine with native MQTT edge ingestion and Kafka cloud consumption.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">MQTT v5 · Edge-to-Cloud · Wildcards</p><!----></div></article><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Message & Work Queues</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">Messaging</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Consolidate RabbitMQ and NATS into an S3-backed broker powering unlimited work queues with competing consumers.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">RabbitMQ · NATS · Work Queues</p><!----></div></article><article class="group flex h-full flex-col border-b border-r border-border p-6 transition-colors duration-200 hover:bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:p-7 lg:p-8"><div class="flex flex-col items-start gap-3 sm:flex-row sm:justify-between"><h3 class="text-lg font-medium tracking-[-0.02em] text-foreground">Event-Driven Architecture (EDA)</h3><span class="shrink-0 font-mono text-[11px] leading-6 text-muted-foreground">Services</span></div><p class="mt-4 text-sm leading-6 text-muted-foreground sm:text-[15px]">Power resilient, event-driven architectures by unifying microservice decoupling, async RPC, and agentic workflows.</p><div class="mt-auto flex items-end justify-between gap-4 pt-8"><p class="font-mono text-[11px] leading-5 text-muted-foreground">Async RPC · Pub/Sub · Decoupling</p><!----></div></article><!--]--></div></section><div class="mt-24 border-t border-border sm:mt-28 lg:mt-32" aria-hidden="true"></div><section class="container pt-20 sm:pt-24 lg:pt-28"><div class="mb-10 text-center lg:mb-12"><h2 class="mb-4 text-foreground text-2xl sm:text-3xl font-normal leading-[1.2] tracking-[-0.025em]"><!--[-->Frequently Asked Questions<!--]--></h2></div><div class="mx-auto max-w-3xl border-y border-border" data-v-658b1e63><!--[--><!--[--><!--[--><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-6" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>Can FlowMQ fully replace existing Kafka and RabbitMQ brokers?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24">
173<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-6" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-7" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-8" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>How does FlowMQ differ from Kafka, RabbitMQ, EMQX, or NATS?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-8" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-9" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-10" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>Can I use my existing MQTT, Kafka, AMQP, or NATS clients with FlowMQ?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-10" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-11" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-12" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>How does FlowMQ connect devices, services, and data pipelines that use different protocols?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24">
173<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-12" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-13" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-14" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>How does FlowMQ ensure message durability, scalability, and failure recovery?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-14" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-15" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-16" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>Can FlowMQ be deployed in my own environment?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-16" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-17" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><div data-state="closed" data-orientation="vertical" class="group/item border-b border-border px-0 last:border-b-0" data-v-04e10d3a><!--[--><!--[--><!--[--><button type="button" aria-controls aria-expanded="false" data-state="closed" id="reka-accordion-trigger-v-0-18" data-reka-collection-item data-orientation="vertical" class="group flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-medium text-foreground hover:no-underline" data-v-bc544fa9><!--[--><!--[--><!--[--><span>Can I try FlowMQ for free?</span><span class="shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4.5 transition-transform duration-300 group-data-[state=open]:rotate-180" style="" width="1em" height="1em" viewBox="0 0 24 24">
173<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg></span><!--]--><!--]--><!--]--></button><div role="region" aria-labelledby="reka-accordion-trigger-v-0-18" data-state="closed" data-orientation="vertical" style="--reka-accordion-content-width:var(--reka-collapsible-content-width);--reka-accordion-content-height:var(--reka-collapsible-content-height);--reka-collapsible-content-height:0px;--reka-collapsible-content-width:0px;" class="overflow-hidden text-sm leading-relaxed text-muted-foreground [--tw-animation-duration:280ms] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" id="reka-collapsible-content-v-0-19" hidden data-v-f30753ca><!--v-if--></div><!--]--><!--]--><!--]--></div><!--]--><!--]--><!--]--></div></section><section class="mt-24 border-t border-border sm:mt-28 lg:mt-32"><div class="container py-20 sm:py-24 lg:py-28"><div class="mx-auto max-w-4xl text-center"><h2 class="mb-4 text-foreground text-3xl sm:text-4xl lg:text-5xl font-normal leading-none tracking-[-0.025em]"><!--[-->Ready to Make Everything Flow?<!--]--></h2><p class="mb-8 text-base leading-relaxed text-muted-foreground mx-auto mt-5 mb-0! max-w-2xl"><!--[-->Start freeâno credit card required. Scale seamlessly when you're ready.<!--]--></p><div class="mt-9 flex flex-col flex-wrap justify-center gap-3 sm:flex-row sm:gap-4 md:gap-6"><!--[--><a href="/dashboard" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 px-12 py-4 has-[>svg]:px-3 h-11 px-6! text-sm font-normal md:px-12!" data-slot="button"><!--[-->Get Started Free<!--]--></a><!----><!--]--><!--[--><a href="/contact" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 px-12 py-4 has-[>svg]:px-3 h-11 px-6! text-sm font-normal shadow-none md:px-12!" data-slot="button" data-variant="outline"><!--[-->Talk to Us<!--]--></a><!----><!--]--></div></div></div></section></main><!--]--><footer class="relative z-10 border-t border-border pt-10 pb-6 text-center lg:text-left"><div class="container"><div class="flex flex-col items-center lg:items-start"><a aria-current="page" href="/" class="router-link-active router-link-exact-active inline-flex items-center gap-2 text-xl font-semibold tracking-[-0.03em] text-foreground"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--my-icon" style="font-size:22px;" width="1.5em" height="1em" viewBox="0 0 57 38"><g fill="none"><g opacity="0.5"> 174<path d="M49.7322 3.03571H2.55358C1.69644 3.03571 1.08929 2.28571 1.08929 1.46429C1.08929 0.642857 1.73215 0 2.55358 0H49.7322C50.5893 0 51.1964 0.642857 51.1964 1.46429C51.1964 2.28571 50.5536 3.03571 49.7322 3.03571Z" fill="#9467F9"/> 175<path d="M49.7322 38H2.55358C1.69644 38 1.08929 37.3572 1.08929 36.5357C1.08929 35.7143 1.73215 35.0714 2.55358 35.0714H49.7322C50.5893 35.0714 51.1964 35.7143 51.1964 36.5357C51.1964 37.3572 50.5536 38 49.7322 38Z" fill="#9467F9"/> 176<path d="M26.7679 24H18.0179C17.1607 24 16.5536 23.3571 16.5536 22.5357C16.5536 21.7143 17.1964 21.0714 18.0179 21.0714H26.6607C27.5179 21.0714 28.125 21.7143 28.125 22.5357C28.125 23.3571 27.4822 24 26.7679 24Z" fill="#9467F9"/> 177<path d="M35.9107 9.96434H27.1964C26.3392 9.96434 25.7321 9.32148 25.7321 8.50005C25.7321 7.67862 26.3749 7.03577 27.1964 7.03577H35.8035C36.6607 7.03577 37.2678 7.67862 37.2678 8.50005C37.4107 9.35719 36.7678 9.96434 35.9107 9.96434Z" fill="#9467F9"/> 178<path d="M40.3392 31.0358H22.875C22.0178 31.0358 21.4107 30.3929 21.4107 29.5715C21.4107 28.7501 22.0535 28.1072 22.875 28.1072H40.3392C41.1964 28.1072 41.8035 28.7501 41.8035 29.5715C41.8035 30.3215 41.1964 31.0358 40.3392 31.0358Z" fill="#9467F9"/> 179<path d="M20.6608 17.0357H4.66076C3.80361 17.0357 3.19647 16.3929 3.19647 15.5715C3.19647 14.75 3.83933 14.1072 4.66076 14.1072H20.6608C21.5179 14.1072 22.125 14.75 22.125 15.5715C22.2322 16.2857 21.4822 17.0357 20.6608 17.0357Z" fill="#9467F9"/> 180</g> 181<path d="M54.4464 3.03571H7.26784C6.4107 3.03571 5.80356 2.28571 5.80356 1.46429C5.80356 0.642857 6.44641 0 7.26784 0H54.4464C55.3036 0 55.9107 0.642857 55.9107 1.46429C55.9107 2.28571 55.2678 3.03571 54.4464 3.03571Z" fill="#9467F9"/> 182<path d="M54.4464 38H7.26784C6.4107 38 5.80356 37.3572 5.80356 36.5357C5.80356 35.7143 6.44641 35.0714 7.26784 35.0714H54.4464C55.3036 35.0714 55.9107 35.7143 55.9107 36.5357C55.9107 37.3572 55.2678 38 54.4464 38Z" fill="#9467F9"/> 183<path d="M31.4822 24H22.7322C21.875 24 21.2679 23.3571 21.2679 22.5357C21.2679 21.7143 21.9107 21.0714 22.7322 21.0714H31.375C32.2322 21.0714 32.8393 21.7143 32.8393 22.5357C32.8393 23.3571 32.1965 24 31.4822 24Z" fill="#9467F9"/> 184<path d="M40.625 9.96434H31.9108C31.0536 9.96434 30.4465 9.32148 30.4465 8.50005C30.4465 7.67862 31.0893 7.03577 31.9108 7.03577H40.5179C41.375 7.03577 41.9822 7.67862 41.9822 8.50005C42.125 9.35719 41.4822 9.96434 40.625 9.96434Z" fill="#9467F9"/> 185<path d="M45.0536 31.0358H27.5893C26.7322 31.0358 26.125 30.3929 26.125 29.5715C26.125 28.7501 26.7679 28.1072 27.5893 28.1072H45.0536C45.9107 28.1072 46.5179 28.7501 46.5179 29.5715C46.5179 30.3215 45.9107 31.0358 45.0536 31.0358Z" fill="#9467F9"/> 186<path d="M25.3751 17.0357H9.37505C8.51791 17.0357 7.91077 16.3929 7.91077 15.5715C7.91077 14.75 8.55362 14.1072 9.37505 14.1072H25.3751C26.2322 14.1072 26.8393 14.75 26.8393 15.5715C26.9465 16.2857 26.1965 17.0357 25.3751 17.0357Z" fill="#9467F9"/></g></svg> FlowMQ <!--]--></a><div class="mt-7 flex items-center gap-3"><!--[--><a href="https://x.com/flowmqio" rel="noopener" target="_blank" class="inline-flex size-8 items-center justify-center text-muted-foreground
186/70 transition-colors duration-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-4" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z"/></svg><span class="sr-only">FlowMQ on X</span><!--]--></a><a href="https://join.slack.com/t/flowmqworkspace/shared_invite/zt-43u8cq429-HHhaylgGYPfK9XlwekS42A" rel="noopener" target="_blank" class="inline-flex size-8 items-center justify-center text-muted-foreground/70 transition-colors duration-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-[18px]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5.042 15.165a2.53 2.53 0 0 1-2.52 2.523A2.53 2.53 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.53 2.53 0 0 1 8.834 24a2.53 2.53 0 0 1-2.521-2.522zM8.834 5.042a2.53 2.53 0 0 1-2.521-2.52A2.53 2.53 0 0 1 8.834 0a2.53 2.53 0 0 1 2.521 2.522v2.52zm0 1.271a2.53 2.53 0 0 1 2.521 2.521a2.53 2.53 0 0 1-2.521 2.521H2.522A2.53 2.53 0 0 1 0 8.834a2.53 2.53 0 0 1 2.522-2.521zm10.122 2.521a2.53 2.53 0 0 1 2.522-2.521A2.53 2.53 0 0 1 24 8.834a2.53 2.53 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.53 2.53 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.53 2.53 0 0 1 2.523 2.522zm-2.523 10.122a2.53 2.53 0 0 1 2.523 2.522A2.53 2.53 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.53 2.53 0 0 1-2.522 2.523z"/></svg><span class="sr-only">Join the FlowMQ Slack community</span><!--]--></a><a href="https://www.youtube.com/@flowmq" rel="noopener" target="_blank" class="inline-flex size-8 items-center justify-center text-muted-foreground/70 transition-colors duration-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons size-[18px]" style="" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M23.498 6.186a3.02 3.02 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.02 3.02 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.02 3.02 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.02 3.02 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814M9.545 15.568V8.432L15.818 12z"/></svg><span class="sr-only">FlowMQ on YouTube</span><!--]--></a><!--]--></div></div></div><div class="container mt-7"><div class="flex flex-col items-center justify-between gap-4 sm:flex-row"><div class="flex flex-col items-center gap-2 text-xs text-muted-foreground sm:flex-row sm:flex-wrap sm:gap-x-4"><p>© 2026 EMQ Technologies Inc.</p><nav aria-label="Legal" class="flex items-center gap-4"><a href="/content/terms-of-service" class="transition-colors hover:text-foreground"><!--[-->Terms of Service<!--]--></a><a href="/content/privacy-policy" class="transition-colors hover:text-foreground"><!--[-->Privacy Policy<!--]--></a></nav></div><!--[--><!--[--><!--[--><!--[--><button data-slot="button" data-variant="ghost" data-size="icon" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none text-base font-normal transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 outline-none size-8" id="reka-dropdown-menu-trigger-v-0-20" type="button" aria-haspopup="menu" aria-expanded="false" data-state="closed" aria-label="Theme"><div class="relative flex size-full items-center justify-center"><span class="inline-flex items-center justify-center gap-2 whitespace-nowrap"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--lucide size-4" style="" width="1em" height="1em" viewBox="0 0 24 24">
186<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg><!--]--></span><!----></div></button><!--v-if--><!--]--><!--]--><!--]--><!--]--></div></div></footer></div><span></span><!--]--></div><div id="teleports"></div>
186<script>window.__NUXT__={};window.__NUXT__.config={public:{baseUrl:"https://flowmq.io",siteUrl:"https://flowmq.io",flowmqEnv:"prod",stripePublishableKey:"pk_live_51TjWYxBB3zdPGXs65e1FTJON4JJWZQPaf5FDCYygPDS3UYBSPXatjpQlKbHFQJDfDwiAgsQ3qI197pCk4WOalMMd00sN2YKAHf",turnstileSiteKey:"0x4AAAAAAEiyQw2T5OD9dmAy",buildTarget:"public",flowmqApiProfile:"cloud",isLite:false,scripts:{umamiAnalytics:{websiteId:"f379d9b7-fac3-4725-8edd-e8b5a85f5953",hostUrl:"https://analytics.emqx.com",scriptInput:{src:"https://analytics.emqx.com/ta.js"},scriptOptions:{trigger:"onNuxtReady",bundle:false,proxy:false}}},"nuxt-scripts":{version:"",prefix:"/_scripts",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:"",endpoints:{}},supabase:{url:"https://ytntssjiwodkdgrvuwgv.supabase.co",key:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl0bnRzc2ppd29ka2RncnZ1d2d2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTAzODY3MDMsImV4cCI6MjA2NTk2MjcwM30.T7asrDO5wIEEencUwxBshuQGTFfqsjP_m2jSGh9dPps",redirect:true,redirectOptions:{login:"/auth/sign-in",callback:"/auth/confirm",exclude:[],cookieRedirect:false,saveRedirectToCookie:false,include:["/dashboard(/.*)?","/admin(/.*)?"]},cookieName:"sb",cookiePrefix:"sb-ytntssjiwodkdgrvuwgv-auth-token",useSsrCookies:true,cookieOptions:{maxAge:28800,sameSite:"lax",secure:true},clientOptions:{}},mdc:{components:{prose:true,map:{},customElements:[]},headings:{anchorLinks:{h1:false,h2:true,h3:true,h4:true,h5:false,h6:false}},highlight:{noApiRoute:true,highlighter:"shiki",theme:{default:"github-light",dark:"github-dark"},shikiEngine:"oniguruma",langs:["js","jsx","json","ts","tsx","vue","css","html","bash","md","mdc","yaml"]}},i18n:{baseUrl:"https://flowmq.io",defaultLocale:"en",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[{code:"en",name:"English",language:"en"}],detectBrowserLanguage:false,experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10,compactRoutes:false,prerenderMessages:false},domainLocales:{en:{domain:""}}},"nuxt-robots":{version:"6.1.1",isNuxtContentV2:false,debug:false,credits:true,groups:[{userAgent:["*"],disallow:["/dashboard","/auth"],allow:[],contentUsage:[],contentSignal:[],_indexable:true,_rules:[{pattern:"/dashboard",allow:false},{pattern:"/auth",allow:false}],_normalized:true}],sitemap:["/sitemap_index.xml"],header:true,robotsEnabledValue:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1",robotsDisabledValue:"noindex, nofollow",cacheControl:"max-age=14400, must-revalidate",botDetection:true,pageMetaRobots:{}},content:{wsUrl:""}},app:{baseURL:"/",buildId:"2d214613-a786-4362-b90b-f0d57386b441",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
186<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="true" id="__NUXT_DATA__">[["ShallowReactive",1],{"data":2,"state":77,"once":93,"_errors":94,"serverRendered":23,"path":96,"pinia":97},["ShallowReactive",3],{"i-simple-icons:mqtt":4,"i-lucide:mail":9,"i-simple-icons:apachekafka":11,"i-simple-icons:natsdotio":13,"i-lucide:sliders-horizontal":15,"i-lucide:network":17,"i-lucide:server":19,"i-simple-icons:amazons3":21,"i-lucide:arrow-down":24,"i-lucide:bot":26,"i-lucide:boxes":28,"i-lucide:database":30,"i-lucide:cloud":32,"i-lucide:blocks":34,"i-lucide:infinity":36,"i-lucide:refresh-cw":38,"i-lucide:expand":40,"i-lucide:gauge":42,"i-lucide:cpu":44,"i-lucide:arrow-right":46,"i-lucide:chevron-down":48,"i-my-icon:flowmq":50,"i-simple-icons:x":54,"i-simple-icons:slack":56,"i-simple-icons:youtube":58,"i-lucide:moon":60,"homepage-sdk-code":62,"i-lucide:copy":75},{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":8},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"M10.657 23.994h-9.45A1.21 1.21 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 10.386m7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 18.121 8.044 18.192 17.956m4.53 0h-.97C21.754 12.071 11.995 2.407 0 2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 14.508v8.291c0 .663-.544 1.195-1.207 1.195M16.713.006h6.092A1.19 1.19 0 0 1 24 1.2v5.914c-.91-1.242-2.046-2.65-3.158-3.762C19.588 2.11 18.122.987 16.714.005Z\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":10},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":12},"\u003Cpath fill=\"currentColor\" d=\"M9.71 2.136a1.43 1.43 0 0 0-2.047 0h-.007a1.48 1.48 0 0 0-.421 1.042c0 .41.161.777.422 1.039l.007.007c.257.264.616.426 1.019.426c.404 0 .766-.162 1.027-.426l.003-.007c.261-.262.421-.629.421-1.039c0-.408-.159-.777-.421-1.042zM8.683 22.295c.404 0 .766-.167 1.027-.429l.003-.008c.261-.261.421-.631.421-1.036c0-.41-.159-.778-.421-1.044H9.71a1.42 1.42 0 0 0-1.027-.432a1.4 1.4 0 0 0-1.02.432h-.007c-.26.266-.422.634-.422 1.044c0 .406.161.775.422 1.036l.007.008c.258.262.617.429 1.02.429m7.89-4.462c.359-.096.683-.33.882-.684l.027-.052a1.47 1.47 0 0 0 .114-1.067a1.45 1.45 0 0 0-.675-.896l-.021-.014a1.43 1.43 0 0 0-1.078-.132c-.36.091-.684.335-.881.686c-.2.349-.241.75-.146 1.119c.099.363.33.691.675.896h.002c.346.203.737.239 1.101.144m-6.405-7.342a2.08 2.08 0 0 0-1.485-.627c-.58 0-1.103.242-1.482.627c-.378.385-.612.916-.612 1.507s.233 1.124.612 1.514a2.08 2.08 0 0 0 2.967 0c.379-.39.612-.923.612-1.514s-.233-1.122-.612-1.507m-.835-2.51c.843.141 1.6.552 2.178 1.144h.004c.092.093.182.196.265.299l1.446-.851a3.2 3.2 0 0 1-.047-1.808a3.15 3.15 0 0 1 1.456-1.926l.025-.016a3.06 3.06 0 0 1 2.345-.306c.77.21 1.465.721 1.898 1.482v.002c.431.757.518 1.626.313 2.408a3.15 3.15 0 0 1-1.456 1.928l-.198.118h-.02a3.1 3.1 0 0 1-2.154.201a3.13 3.13 0 0 1-1.514-.944l-1.444.848a4.16 4.16 0 0 1 0 2.879l1.444.846c.413-.47.939-.789 1.514-.944a3.04 3.04 0 0 1 2.371.319l.048.023v.002a3.17 3.17 0 0 1 1.408 1.906a3.22 3.22 0 0 1-.313 2.405l-.026.053l-.003-.005a3.15 3.15 0 0 1-1.867 1.436a3.1 3.1 0 0 1-2.371-.318v-.006a3.16 3.16 0 0 1-1.456-1.927a3.2 3.2 0 0 1 .047-1.805l-1.446-.848a4 4 0 0 1-.265.294l-.004.005a3.94 3.94 0 0 1-2.178
1861.138v1.699a3.1 3.1 0 0 1 1.56.862l.002.004c.565.572.914 1.368.914 2.243c0 .873-.35 1.664-.914 2.239l-.002.009a3.1 3.1 0 0 1-2.21.931a3.1 3.1 0 0 1-2.206-.93h-.002v-.009a3.2 3.2 0 0 1-.916-2.239c0-.875.35-1.672.916-2.243v-.004h.002a3.1 3.1 0 0 1 1.558-.862v-1.699a3.93 3.93 0 0 1-2.176-1.138l-.006-.005a4.1 4.1 0 0 1-1.173-2.874c0-1.122.452-2.136 1.173-2.872h.006a3.95 3.95 0 0 1 2.176-1.144V6.289a3.14 3.14 0 0 1-1.558-.864h-.002v-.004a3.2 3.2 0 0 1-.916-2.243c0-.871.35-1.669.916-2.243l.002-.002A3.08 3.08 0 0 1 8.683 0c.861 0 1.641.355 2.21.932v.002h.002c.565.574.914 1.372.914 2.243c0 .876-.35 1.667-.914 2.243l-.002.005a3.14 3.14 0 0 1-1.56.864zm8.121-1.129l-.012-.019a1.45 1.45 0 0 0-.87-.668a1.43 1.43 0 0 0-1.103.146h.002c-.347.2-.58.529-.677.896c-.095.365-.054.768.146 1.119l.007.009c.2.347.519.579.874.673c.357.103.755.059 1.098-.144l.019-.009a1.47 1.47 0 0 0 .657-.885a1.5 1.5 0 0 0-.141-1.118\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":14},"\u003Cpath fill=\"currentColor\" d=\"M12.004 0H.404v18.807h9.938l1.714 1.602v-.026L15.966 24v-5.193h7.63V0zm7.578 14.45H15.38L6.898 6.519v7.93H4.116V4.376h4.349l8.344 7.784V4.375h2.773z\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":16},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":18},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"6\" height=\"6\" x=\"16\" y=\"16\" rx=\"1\"\u002F>\u003Crect width=\"6\" height=\"6\" x=\"2\" y=\"16\" rx=\"1\"\u002F>\u003Crect width=\"6\" height=\"6\" x=\"9\" y=\"2\" rx=\"1\"\u002F>\u003Cpath d=\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3m-7-4V8\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":20},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"2\" rx=\"2\" ry=\"2\"\u002F>\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"14\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M6 6h.01M6 18h.01\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":22,"hidden":23},"\u003Cpath fill=\"currentColor\" d=\"m20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071c-.16.031-.562.046-1.474-.176m-2.174 7.988l-.005.073c0 .084-.207.405-1.124.768a10 10 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504c-4.612 0-7.412-1.184-7.412-1.704l-.005-.073L1.81 5.602q.203.117.432.227q.064.03.128.057q.2.093.417.18l.179.069q.232.087.478.168l.13.043q.311.097.646.187l.176.044q.263.066.534.127a23 23 0 0 0 .843.17l.121.023q.378.067.768.122q.107.016.216.03q.299.04.604.077l.24.027q.366.04.74.07l.081.009q.413.033.83.056l.233.012q.316.015.633.025a33 33 0 0 0 2.795-.026l.232-.011q.417-.023.83-.056l.08-.008q.375-.03.742-.072l.238-.026q.307-.036.609-.077l.211-.03q.392-.056.772-.122l.111-.02q.323-.06.634-.125l.212-.047q.279-.062.546-.13l.166-.042q.338-.09.654-.189l.115-.038a11 11 0 0 0 .493-.173q.087-.032.17-.066q.225-.089.43-.185q.059-.025.116-.052q.23-.11.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088s.488 1.089 1.088 1.089c.196 0 .378-.056.537-.148c1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101c-.015.028-.026.057-.047.087c-.024.033-.058.068-.09.102c-.028.03-.051.06-.084.09c-.038.035-.087.07-.133.105c-.04.03-.074.06-.119.091c-.053.036-.116.071-.177.107c-.05.03-.095.06-.15.09c-.068.036-.147.073-.222.11c-.059.028-.114.057-.177.085c-.084.038-.177.074-.268.111c-.068.027-.13.054-.203.082c-.097.036-.205.072-.31.107c-.075.026-.148.053-.228.079c-.111.035-.233.069-.35.103c-.085.024-.165.05-.253.073c-.124.034-.258.065-.389.098c-.093.022-.181.046-.278.068c-.139.032-.287.061-.433.091c-.098.02-.191.041-.293.06c-.155.03-.32.057-.482.084c-.1.018-.198.036-.302.052c-.166.026-.342.048-.515.072c-.11.014-.213.03-.325.044c-.181.023-.372.041-.56.06q-.163.019-.332.036c-.188.016-.386.029-.58.043c-.122.009-.24.02-.364.028c-.207.012-.422.02-.635.028c-.12.005-.234.012-.354.016a36 36 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016c-.214-.008-.43-.016-.637-.028c-.122-.008-.238-.02-.36-.027c-.195-.015-.394-.028-.584-.044c-.11-.01-.215-.024-.324-.035c-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073c-.1-.015-.192-.033-.29-.05c-.167-.028-.335-.055-.494-.086c-.096-.018-.183-.038-.276-.056c-.151-.032-.305-.062-.45-.095c-.09-.02-.173-.043-.26-.064c-.138-.034-.277-.06
1867-.407-.102c-.082-.022-.157-.046-.235-.069a12 12 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073c-.11-.037-.223-.075-.325-.113c-.067-.025-.125-.051-.188-.077c-.096-.038-.195-.076-.282-.115c-.06-.027-.11-.054-.166-.08c-.08-.039-.162-.077-.233-.116c-.052-.028-.094-.055-.142-.084c-.063-.038-.13-.075-.185-.113c-.043-.029-.075-.058-.113-.086c-.048-.037-.098-.073-.139-.11c-.032-.029-.054-.057-.08-.087c-.033-.035-.069-.07-.093-.104c-.02-.03-.031-.058-.046-.086c-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736m12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963-7.16l.005-.073C22.16 1.581 16.447 0 11.32 0C6.194 0 .482 1.581.482 3.851l.005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75c1.805 0 3.615-.188 5.098-.531c.598-.138 1.133-.3 1.592-.48c1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197c.54 0 .902-.137 1.134-.413a.96.96 0 0 0 .21-.804Z\"\u002F>",true,{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":25},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v14m7-7l-7 7l-7-7\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":27},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 8V4H8\"\u002F>\u003Crect width=\"16\" height=\"12\" x=\"4\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M2 14h2m16 0h2m-7-1v2m-6-2v2\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3zM7 16.5l-4.74-2.85M7 16.5l5-3m-5 3v5.17m5-8.17V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5zm5 3l-5-3m5 3l4.74-2.85M17 16.5v5.17\"\u002F>\u003Cpath d=\"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3l5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0zM12 8L7.26 5.15M12 8l4.74-2.85M12 13.5V8\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\u002F>\u003Cpath d=\"M3 5v14a9 3 0 0 0 18 0V5\"\u002F>\u003Cpath d=\"M3 12a9 3 0 0 0 18 0\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":33},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":35},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"14\" y=\"2\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":37},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":39},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 12a9 9 0 0 1 9-9a9.75 9.75 0 0 1 6.74 2.74L21 8\"\u002F>\u003Cpath d=\"M21 3v5h-5m5 4a9 9 0 0 1-9 9a9.75 9.75 0 0 1-6.74-2.74L3 16\"\u002F>\u003Cpath d=\"M8 16H3v5\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":41},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m15 15l6 6M15 9l6-6m0 13v5h-5m5-13V3h-5M3 16v5h5m
186-5 0l6-6M3 8V3h5m1 6L3 3\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":43},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 14l4-4M3.34 19a10 10 0 1 1 17.32 0\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":45},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 20v2m0-20v2m5 16v2m0-20v2M2 12h2m-2 5h2M2 7h2m16 5h2m-2 5h2M20 7h2M7 20v2M7 2v2\"\u002F>\u003Crect width=\"16\" height=\"16\" x=\"4\" y=\"4\" rx=\"2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"8\" y=\"8\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":47},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":49},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":5,"top":5,"width":51,"height":52,"rotate":5,"vFlip":7,"hFlip":7,"body":53},57,38,"\u003Cg fill=\"none\">\u003Cg opacity=\"0.5\">\n\u003Cpath d=\"M49.7322 3.03571H2.55358C1.69644 3.03571 1.08929 2.28571 1.08929 1.46429C1.08929 0.642857 1.73215 0 2.55358 0H49.7322C50.5893 0 51.1964 0.642857 51.1964 1.46429C51.1964 2.28571 50.5536 3.03571 49.7322 3.03571Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M49.7322 38H2.55358C1.69644 38 1.08929 37.3572 1.08929 36.5357C1.08929 35.7143 1.73215 35.0714 2.55358 35.0714H49.7322C50.5893 35.0714 51.1964 35.7143 51.1964 36.5357C51.1964 37.3572 50.5536 38 49.7322 38Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M26.7679 24H18.0179C17.1607 24 16.5536 23.3571 16.5536 22.5357C16.5536 21.7143 17.1964 21.0714 18.0179 21.0714H26.6607C27.5179 21.0714 28.125 21.7143 28.125 22.5357C28.125 23.3571 27.4822 24 26.7679 24Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M35.9107 9.96434H27.1964C26.3392 9.96434 25.7321 9.32148 25.7321 8.50005C25.7321 7.67862 26.3749 7.03577 27.1964 7.03577H35.8035C36.6607 7.03577 37.2678 7.67862 37.2678 8.50005C37.4107 9.35719 36.7678 9.96434 35.9107 9.96434Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M40.3392 31.0358H22.875C22.0178 31.0358 21.4107 30.3929 21.4107 29.5715C21.4107 28.7501 22.0535 28.1072 22.875 28.1072H40.3392C41.1964 28.1072 41.8035 28.7501 41.8035 29.5715C41.8035 30.3215 41.1964 31.0358 40.3392 31.0358Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M20.6608 17.0357H4.66076C3.80361 17.0357 3.19647 16.3929 3.19647 15.5715C3.19647 14.75 3.83933 14.1072 4.66076 14.1072H20.6608C21.5179 14.1072 22.125 14.75 22.125 15.5715C22.2322 16.2857 21.4822 17.0357 20.6608 17.0357Z\" fill=\"#9467F9\"\u002F>\n\u003C\u002Fg>\n\u003Cpath d=\"M54.4464 3.03571H7.26784C6.4107 3.03571 5.80356 2.28571 5.80356 1.46429C5.80356 0.642857 6.44641 0 7.26784 0H54.4464C55.3036 0 55.9107 0.642857 55.9107 1.46429C55.9107 2.28571 55.2678 3.03571 54.4464 3.03571Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M54.4464 38H7.26784C6.4107 38 5.80356 37.3572 5.80356 36.5357C5.80356 35.7143 6.44641 35.0714 7.26784 35.0714H54.4464C55.3036 35.0714 55.9107 35.7143 55.9107 36.5357C55.9107 37.3572 55.2678 38 54.4464 38Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M31.4822 24H22.7322C21.875 24 21.2679 23.3571 21.2679 22.5357C21.2679 21.7143 21.9107 21.0714 22.7322 21.0714H31.375C32.2322 21.0714 32.8393 21.7143 32.8393 22.5357C32.8393 23.3571 32.1965 24 31.4822 24Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M40.625 9.96434H31.9108C31.0536 9.96434 30.4465 9.32148 30.4465 8.50005C30.4465 7.67862 31.0893 7.03577 31.9108 7.03577H40.5179C41.375 7.03577 41.9822 7.67862 41.9822 8.50005C42.125 9.35719 41.4822 9.96434 40.625 9.96434Z\" fill=\"#9467F9\"\u002F>
186\n\u003Cpath d=\"M45.0536 31.0358H27.5893C26.7322 31.0358 26.125 30.3929 26.125 29.5715C26.125 28.7501 26.7679 28.1072 27.5893 28.1072H45.0536C45.9107 28.1072 46.5179 28.7501 46.5179 29.5715C46.5179 30.3215 45.9107 31.0358 45.0536 31.0358Z\" fill=\"#9467F9\"\u002F>\n\u003Cpath d=\"M25.3751 17.0357H9.37505C8.51791 17.0357 7.91077 16.3929 7.91077 15.5715C7.91077 14.75 8.55362 14.1072 9.37505 14.1072H25.3751C26.2322 14.1072 26.8393 14.75 26.8393 15.5715C26.9465 16.2857 26.1965 17.0357 25.3751 17.0357Z\" fill=\"#9467F9\"\u002F>\u003C\u002Fg>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":55},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":57,"hidden":23},"\u003Cpath fill=\"currentColor\" d=\"M5.042 15.165a2.53 2.53 0 0 1-2.52 2.523A2.53 2.53 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.53 2.53 0 0 1 8.834 24a2.53 2.53 0 0 1-2.521-2.522zM8.834 5.042a2.53 2.53 0 0 1-2.521-2.52A2.53 2.53 0 0 1 8.834 0a2.53 2.53 0 0 1 2.521 2.522v2.52zm0 1.271a2.53 2.53 0 0 1 2.521 2.521a2.53 2.53 0 0 1-2.521 2.521H2.522A2.53 2.53 0 0 1 0 8.834a2.53 2.53 0 0 1 2.522-2.521zm10.122 2.521a2.53 2.53 0 0 1 2.522-2.521A2.53 2.53 0 0 1 24 8.834a2.53 2.53 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.53 2.53 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.53 2.53 0 0 1 2.523 2.522zm-2.523 10.122a2.53 2.53 0 0 1 2.523 2.522A2.53 2.53 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.53 2.53 0 0 1-2.522 2.523z\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":59},"\u003Cpath fill=\"currentColor\" d=\"M23.498 6.186a3.02 3.02 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.02 3.02 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.02 3.02 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.02 3.02 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814M9.545 15.568V8.432L15.818 12z\"\u002F>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":61},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"mqtt":63,"kafka":66,"amqp":69,"nats":72},{"light":64,"dark":65},"\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Publish telemetry to FlowMQ Cloud Broker using Paho C\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> <stdio.h>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> <string.h>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"MQTTClient.h\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">int\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">void\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> const\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> char\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> *\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">url \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"tcp:\u002F\u002Ffmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:1883\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> MQTTClient client;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> MQTTClient_connectOptions conn_opts \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> MQTTClient_connectOptions_initializer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> MQTTClient_message pubmsg \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> MQTTClient_message_initializer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> MQTTClient_deliveryToken token;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\"> MQTTClient_create\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">client, url, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"agent-01\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">NULL\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> conn_opts.username \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"token\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> conn_opts.password \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"flow_secret_xyz\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> (\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">MQTTClient_connect\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">conn_opts) \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> MQTTCLIENT_SUCCESS)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> -\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> pubmsg.payload \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"{\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">status\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">:\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">active\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">}\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> pubmsg.payloadlen \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> (\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">int\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">strlen\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(pubmsg.payload);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> pubmsg.qos \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\"> MQTTClient_publishMessage\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"telemetry\u002Fagents\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">
186pubmsg, \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">token);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\"> MQTTClient_waitForCompletion\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(client, token, \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">10000\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">L\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\"> MQTTClient_disconnect\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">10000\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\"> MQTTClient_destroy\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">client);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Publish telemetry to FlowMQ Cloud Broker using Paho C\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> <stdio.h>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> <string.h>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">#include\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"MQTTClient.h\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">int\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">void\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> const\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> char\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> *\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">url \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"tcp:\u002F\u002Ffmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:1883\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> MQTTClient client;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> MQTTClient_connectOptions conn_opts \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> MQTTClient_connectOptions_initializer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> MQTTClient_message pubmsg \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> MQTTClient_message_initializer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> MQTTClient_deliveryToken token;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> MQTTClient_create\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">&\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">client, url, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"agent-01\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">0\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">NULL\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> conn_opts.username \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"token\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> conn_opts.password \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"flow_secret_xyz\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> if\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> (\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">MQTTClient_connect\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">&\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">conn_opts) \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> MQTTCLIENT_SUCCESS)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> -\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> pubmsg.payload \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"{\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">status\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">:\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">active\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">}\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> pubmsg.payloadlen \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> (\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">int\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">strlen\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(pubmsg.payload);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> pubmsg.qos \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> 1\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> MQTTClient_publishMessage\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"telemetry\u002Fagents\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">&\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">
186pubmsg, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">&\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">token);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> MQTTClient_waitForCompletion\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(client, token, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">10000\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">L\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> MQTTClient_disconnect\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(client, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">10000\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\"> MQTTClient_destroy\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">&\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">client);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"light":67,"dark":68},"\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Produce stream records using official Java Client\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> org.apache.kafka.clients.producer.KafkaProducer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> org.apache.kafka.clients.producer.ProducerRecord;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> java.util.Properties;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">public\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> class\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> KafkaProduce\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> public\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> static\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> void\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">String\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">[] \u003C\u002Fspan>\u003Cspan style=\"color:#E36209\">args\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">) \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">throws\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> Exception {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> String bootstrap \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:9092\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> Properties config \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> Properties\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"bootstrap.servers\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, bootstrap);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"security.protocol\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"SASL_PLAINTEXT\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"sasl.mechanism\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"PLAIN\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"sasl.jaas.config\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"org.apache.kafka.common.security.plain.PlainLoginModule required username=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">token\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> password=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">flow_secret_xyz\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">;\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"key.serializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"org.apache.kafka.common.serialization.StringSerializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"value.serializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"org.apache.kafka.common.serialization.StringSerializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">put\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"acks\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"all\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> KafkaProducer<\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">String\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">String\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">> producer \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> KafkaProducer<>(config);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> producer.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">send\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">new\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> ProducerRecord<>(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"ai-ingest-stream\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"{\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">inference\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">completed\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">}\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)).\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">get\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> producer.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">close\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Produce stream records using official Java Client\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> org.apache.kafka.clients.producer.KafkaProducer;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> org.apache.kafka.clients.producer.ProducerRecord;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> java.util.Properties;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">public\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> class\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> KafkaProduce\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> public\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> static\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> void\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">String\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">[] \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">args\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">throws\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">
186 Exception {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> String bootstrap \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:9092\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> Properties config \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> Properties\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"bootstrap.servers\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, bootstrap);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"security.protocol\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"SASL_PLAINTEXT\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"sasl.mechanism\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"PLAIN\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"sasl.jaas.config\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"org.apache.kafka.common.security.plain.PlainLoginModule required username=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">token\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> password=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">flow_secret_xyz\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">;\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"key.serializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"org.apache.kafka.common.serialization.StringSerializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"value.serializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"org.apache.kafka.common.serialization.StringSerializer\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> config.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">put\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"acks\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"all\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> KafkaProducer<\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">String\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">String\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">> producer \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> new\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">
186 KafkaProducer<>(config);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> producer.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">send\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">new\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> ProducerRecord<>(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"ai-ingest-stream\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"{\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">inference\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">completed\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">}\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)).\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">get\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> producer.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">close\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"light":70,"dark":71},"\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Route AMQP message queues through FlowMQ exchange\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> pika\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">host \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> 'fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud'\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">creds \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> pika.PlainCredentials(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'token'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'flow_secret_xyz'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">conn \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> pika.BlockingConnection(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> pika.ConnectionParameters(host, \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">5672\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'\u002F'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, creds)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">channel \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> conn.channel()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">channel.basic_publish(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E36209\"> exchange\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'amq.direct'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#E36209\">routing_key\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'billing'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, \u003C\u002Fspan>\u003Cspan style=\"color:#E36209\">body\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'invoice-992'\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Route AMQP message queues through FlowMQ exchange\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> pika\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">host \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> 'fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud'\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">creds \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> pika.PlainCredentials(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'token'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'flow_secret_xyz'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">conn \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> pika.BlockingConnection(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> pika.ConnectionParameters(host, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">5672\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'\u002F'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, creds)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">channel \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> conn.channel()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">channel.basic_publish(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\"> exchange\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'amq.direct'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">routing_key\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'billing'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">body\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'invoice-992'\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"light":73,"dark":74},"\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Publish low-latency broadcast over cloud NATS using nats.go\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">package\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> main\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> (\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">log\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">github.com\u002Fnats-io\u002Fnats.go\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">func\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">() {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> url \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">:=\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"nats:\u002F\u002Ftoken:flow_secret_xyz@fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:4222\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> nc, err \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">:=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> nats.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">Connect\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(url)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> log.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">Fatal\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(err)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> defer\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> nc.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">Close\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> nc.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">Publish\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"agents.notifications\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, []\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">byte\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"broadcast\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\"> if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> log.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">Fatal\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(err)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\u002F\u002F Publish low-latency broadcast over cloud NATS using nats.go\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">package\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> main\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> (\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">log\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">github.com\u002Fnats-io\u002Fnats.go\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">func\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">() {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> url \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">:=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"nats:\u002F\u002Ftoken:flow_secret_xyz@fmq-eef4f84607a04d13.tiger.prod.us-east-1.flowmq.cloud:4222\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> nc, err \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">:=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> nats.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">Connect\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(url)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> if\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> log.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">Fatal\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(err)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> defer\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> nc.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">Close\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> nc.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">Publish\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"agents.notifications\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, []\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">byte\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"broadcast\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> if\u003C\u
186002Fspan>\u003Cspan style=\"color:#E1E4E8\"> err \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">!=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> log.\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\">Fatal\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(err)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"left":5,"top":5,"width":6,"height":6,"rotate":5,"vFlip":7,"hFlip":7,"body":76},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",["Reactive",78],{"$ssupabase_session":79,"$ssupabase_user":79,"$scolor-mode":80,"$si18n:cached-locale-configs":82,"$si18n:resolved-locale":85,"$ssite-config":86},null,{"preference":81,"value":81,"unknown":23,"forced":7},"dark",{"en":83},{"fallbacks":84,"cacheable":23},[],"",{"_priority":87,"currentLocale":90,"defaultLocale":90,"env":91,"url":92},{"env":88,"url":89,"defaultLocale":89,"currentLocale":89},-15,-2,"en","production","https:\u002F\u002Fflowmq.io",["Set"],["ShallowReactive",95],{"homepage-sdk-code":-1,"i-my-icon:flowmq":-1,"i-simple-icons:slack":-1,"i-simple-icons:mqtt":-1,"i-simple-icons:apachekafka":-1,"i-lucide:mail":-1,"i-simple-icons:natsdotio":-1,"i-lucide:arrow-right":-1,"i-lucide:arrow-down":-1,"i-lucide:sliders-horizontal":-1,"i-lucide:network":-1,"i-lucide:server":-1,"i-lucide:database":-1,"i-simple-icons:amazons3":-1,"i-lucide:bot":-1,"i-lucide:boxes":-1,"i-lucide:cloud":-1,"i-lucide:blocks":-1,"i-lucide:infinity":-1,"i-lucide:refresh-cw":-1,"i-lucide:expand":-1,"i-lucide:gauge":-1,"i-lucide:cpu":-1,"i-lucide:chevron-down":-1,"i-simple-icons:x":-1,"i-simple-icons:youtube":-1,"i-lucide:moon":-1,"i-lucide:copy":-1},"\u002F",["Reactive",98],{}]</script>
186</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.