[{"data":1,"prerenderedAt":257},["ShallowReactive",2],{"agmd-flowfuse-foundations":3,"application-guide-nav":151},{"id":4,"title":5,"blurb":6,"body":7,"description":6,"extension":142,"guide":143,"meta":144,"navOrder":139,"navTitle":5,"navigation":145,"parent":146,"path":147,"seo":148,"slug":13,"stem":149,"__hash__":150},"applicationGuideDoc\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations.md","Foundations","The foundation to build on: what FlowFuse is, its core pieces, and how code is shared across teams.",{"type":8,"value":9,"toc":134},"minimark",[10,14,17,24,29,35,39,92,101,115,119,122],[11,12,5],"h1",{"id":13},"foundations",[15,16,6],"p",{},[15,18,19,23],{},[20,21,22],"strong",{},"FlowFuse is an application platform for building, deploying and managing industrial applications on Node-RED"," — across IT, OT and IIoT, from the edge to the cloud, governed from one place.",[25,26,28],"h2",{"id":27},"the-big-picture","The big picture",[30,31],"arch-diagram",{":edges":32,":groups":33,":nodes":34},"[{\"from\":\"users\",\"to\":\"platform\",\"label\":\"access\"},{\"from\":\"agent\",\"to\":\"platform\",\"label\":\"managed by\"}]","[{\"id\":\"platform\",\"label\":\"FlowFuse Platform — runs and connects your instances\",\"accent\":\"indigo\",\"nodes\":[\"hosted\",\"dash\",\"broker\",\"tables\"]},{\"id\":\"agent\",\"label\":\"Device Agent — bridges platform to the edge\",\"accent\":\"red\",\"nodes\":[\"remote\"]}]","[{\"id\":\"users\",\"label\":\"Users\",\"sub\":\"operators & teams\",\"accent\":\"slate\",\"many\":true,\"span\":2,\"col\":2,\"row\":1},{\"id\":\"hosted\",\"label\":\"Hosted Instance\",\"sub\":\"one or many · cloud or your server\",\"accent\":\"indigo\",\"many\":true,\"col\":1,\"row\":2},{\"id\":\"dash\",\"label\":\"Dashboard\",\"sub\":\"live operator UI\",\"accent\":\"blue\",\"col\":2,\"row\":2},{\"id\":\"broker\",\"label\":\"Team Broker\",\"sub\":\"MQTT message bus\",\"accent\":\"teal\",\"col\":3,\"row\":2},{\"id\":\"tables\",\"label\":\"FlowFuse Tables\",\"sub\":\"shared SQL database\",\"accent\":\"green\",\"col\":4,\"row\":2},{\"id\":\"remote\",\"label\":\"Remote Instance\",\"sub\":\"one per device, across sites\",\"accent\":\"slate\",\"many\":true,\"span\":2,\"col\":2,\"row\":3}]",[25,36,38],{"id":37},"the-core-pieces","The core pieces",[40,41,42,49,68,74,80,86],"ul",{},[43,44,45,48],"li",{},[20,46,47],{},"Single platform"," — Manage, secure, and govern everything from one place.",[43,50,51,54,55,58,59,62,63],{},[20,52,53],{},"Instances"," — Node-RED runtimes. A ",[20,56,57],{},"Hosted Instance"," runs on FlowFuse-managed infrastructure (cloud or your own server); a ",[20,60,61],{},"Remote Instance"," runs on your own edge hardware via the Device Agent. Same runtime either way — it connects to whatever the job needs (hardware, data, cloud) and can serve its own Dashboard. ",[64,65,67],"a",{"href":66},"\u002Fapplication-guide\u002Fnode-red\u002Ffoundations\u002F","What an instance connects to →",[43,69,70,73],{},[20,71,72],{},"Team Broker"," — A shared message bus that ties data together across sites.",[43,75,76,79],{},[20,77,78],{},"Database"," — One shared operational data store.",[43,81,82,85],{},[20,83,84],{},"Dashboards"," — Operator-facing UIs for the people who run it.",[43,87,88,91],{},[20,89,90],{},"Edge & device management"," — Deploy and manage across many devices, lines, and plants.",[93,94,96],"callout",{"icon":95},"i-lucide-square-stack",[15,97,98,100],{},[20,99,61],{}," — A Remote Instance lives in both worlds: edge execution down in OT, or an on-prem worker under an IT\u002Fcloud platform.",[93,102,104],{"icon":103},"i-lucide-book-open",[15,105,106,109,110,114],{},[20,107,108],{},"In the FlowFuse docs"," — that's the mental model in plain language. For the full glossary — every FlowFuse piece and term (Applications, Instances, Snapshots, Pipelines, Team Broker, Tables, Devices and more) — see the ",[64,111,113],{"href":112},"\u002Fdocs\u002Fuser\u002Fconcepts\u002F","FlowFuse Concepts documentation",".",[25,116,118],{"id":117},"how-code-gets-shared","How code gets shared",[15,120,121],{},"Two ways code moves in FlowFuse: promote a whole app through environments, or compose an app from shared parts.",[93,123,125],{"icon":124},"i-lucide-arrow-right",[15,126,127,133],{},[20,128,129],{},[64,130,132],{"href":131},"\u002Fapplication-guide\u002Fflowfuse\u002Fapp-delivery-methods\u002F","App delivery methods →"," — whole app or reusable pieces: how a build reaches every place that should run it.",{"title":135,"searchDepth":136,"depth":136,"links":137},"",4,[138,140,141],{"id":27,"depth":139,"text":28},2,{"id":37,"depth":139,"text":38},{"id":117,"depth":139,"text":118},"md","flowfuse",{},true,null,"\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations",{"title":5,"description":6},"application-guide\u002Fflowfuse\u002Ffoundations","QTC2eKt-zB41Z8EPN919uSNwACeBfw2RlC98Fi4-vKU",[152,158,162,164,166,171,176,182,187,193,198,204,209,214,220,226,232,237,242,247,251],{"guide":143,"slug":153,"title":154,"navOrder":155,"parent":146,"blurb":156,"path":157},"overview","Overview",1,"The map of the FlowFuse guide — apps, architectures, and a worked example.","\u002Fapplication-guide\u002Fflowfuse\u002Foverview\u002F",{"guide":159,"slug":153,"title":154,"navOrder":155,"parent":146,"blurb":160,"path":161},"node-red","The map of the Node-RED guide — the pattern families that turn an app into a clean flow.","\u002Fapplication-guide\u002Fnode-red\u002Foverview\u002F",{"guide":143,"slug":13,"title":5,"navOrder":139,"parent":146,"blurb":6,"path":163},"\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations\u002F",{"guide":159,"slug":13,"title":5,"navOrder":139,"parent":146,"blurb":165,"path":66},"The handful of concepts you need to build with Node-RED, and how they fit together.",{"guide":143,"slug":167,"title":168,"navOrder":169,"parent":146,"blurb":170,"path":131},"app-delivery-methods","App delivery methods",3,"Two different units of code, delivered two ways. Ship the whole app — a complete, versioned project promoted through environments — or publish one reusable piece — a package the whole team installs and upgrades in one place. Pick by what you're shipping: the app, or a part of it.",{"guide":159,"slug":172,"title":173,"navOrder":169,"parent":146,"blurb":174,"path":175},"patterns","Patterns","The moves that turn an architecture into a clean, reusable flow — find the seams and reuse well, then handle data on the right paths.","\u002Fapplication-guide\u002Fnode-red\u002Fpatterns\u002F",{"guide":143,"slug":177,"title":178,"navOrder":179,"parent":167,"blurb":180,"path":181},"hardware-apps","Hardware apps",3.1,"The three shapes a FlowFuse app takes when it runs on a device. Pick by how much varies per site: nothing (Packaged App), a few settings (Configurable App), or you assemble it yourself (Edge Building Block).","\u002Fapplication-guide\u002Fflowfuse\u002Fhardware-apps\u002F",{"guide":159,"slug":183,"title":184,"navOrder":179,"parent":172,"blurb":185,"path":186},"design-patterns","Design patterns","The structural choices you select for a flow: find the seams it breaks into, then reuse each piece at the lightest level that solves it — link in\u002Fout, link call, subflow, or packaged node.","\u002Fapplication-guide\u002Fnode-red\u002Fdesign-patterns\u002F",{"guide":143,"slug":188,"title":189,"navOrder":190,"parent":167,"blurb":191,"path":192},"software-apps","Software apps",3.2,"The three shapes a FlowFuse app takes when it runs on the platform. Pick by what it needs: a headless job (Packaged App), a user-facing app driven by data (Data-Driven App), or a reusable piece other apps embed (Shared Building Block).","\u002Fapplication-guide\u002Fflowfuse\u002Fsoftware-apps\u002F",{"guide":159,"slug":194,"title":195,"navOrder":190,"parent":172,"blurb":196,"path":197},"handling-data","Handling data","Classify each signal by shape, purpose and direction, then pick the methods it needs — separate the paths, pace the flow, hold state in context, and manage config. The methods you select to move a flow's data.","\u002Fapplication-guide\u002Fnode-red\u002Fhandling-data\u002F",{"guide":159,"slug":199,"title":200,"navOrder":201,"parent":172,"blurb":202,"path":203},"good-form","Good form",3.3,"A clean flow isn't luck — it's a handful of habits. Wire for reading, lay it out on a grid, decouple UI from logic, catch errors where you can see them, and keep data on a stable contract. Follow these and a flow stays readable, reusable, and out of spaghetti.","\u002Fapplication-guide\u002Fnode-red\u002Fgood-form\u002F",{"guide":143,"slug":205,"title":206,"navOrder":136,"parent":146,"blurb":207,"path":208},"data-plane","Data plane","Before you pick where things run, decide how data is handled. Two stores come built into every FlowFuse server install — the Team Broker and relational Tables — exposed to every instance with nothing extra to stand up. Everything else you bring your own: run it (a time-series DB, an existing database, a model) and expose it to the fleet over Project Link, no inbound ports. This is the data plane the architectures on the next pages all sit on.","\u002Fapplication-guide\u002Fflowfuse\u002Fdata-plane\u002F",{"guide":159,"slug":210,"title":211,"navOrder":136,"parent":146,"blurb":212,"path":213},"worked-examples","Worked examples","Turn an app concept into a Node-RED flow — or a few — leaning on the design patterns and data handling. The method, then the OEE apps end to end.","\u002Fapplication-guide\u002Fnode-red\u002Fworked-examples\u002F",{"guide":159,"slug":215,"title":216,"navOrder":217,"parent":210,"blurb":218,"path":219},"oee-edge-aggregator","OEE - Edge Aggregator",4.1,"The edge app from the OEE use case as a Node-RED flow — a straight-line flow packaged as a subflow and configured per line (its PLC tags, via a config UI and a get-config node), with the data treated as a stream and its counts held in context.","\u002Fapplication-guide\u002Fnode-red\u002Foee-edge-aggregator\u002F",{"guide":159,"slug":221,"title":222,"navOrder":223,"parent":210,"blurb":224,"path":225},"oee-central-dashboard","OEE - Central Dashboard",4.2,"The cloud app from the OEE use case as a Node-RED flow — one link out fanning to two link ins on separate tabs (dashboard and batched history), so the live and history paths stay separate and easy to read.","\u002Fapplication-guide\u002Fnode-red\u002Foee-central-dashboard\u002F",{"guide":143,"slug":227,"title":228,"navOrder":229,"parent":146,"blurb":230,"path":231},"architectures","Architectures",5,"Every FlowFuse deployment is the same building blocks arranged for where it runs — pick the world you're designing for.","\u002Fapplication-guide\u002Fflowfuse\u002Farchitectures\u002F",{"guide":143,"slug":233,"title":234,"navOrder":235,"parent":227,"blurb":146,"path":236},"it-architectures","IT architectures",5.1,"\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures\u002F",{"guide":143,"slug":238,"title":239,"navOrder":240,"parent":227,"blurb":146,"path":241},"ot-architectures","OT architectures",5.2,"\u002Fapplication-guide\u002Fflowfuse\u002Fot-architectures\u002F",{"guide":143,"slug":243,"title":244,"navOrder":245,"parent":227,"blurb":146,"path":246},"iiot-architectures","IIoT architectures",5.3,"\u002Fapplication-guide\u002Fflowfuse\u002Fiiot-architectures\u002F",{"guide":143,"slug":210,"title":211,"navOrder":248,"parent":146,"blurb":249,"path":250},6,"Start from a use case, break it into apps, and draw the architecture that ties them together — the same method a FlowFuse Proof of Value runs.","\u002Fapplication-guide\u002Fflowfuse\u002Fworked-examples\u002F",{"guide":143,"slug":252,"title":253,"navOrder":254,"parent":210,"blurb":255,"path":256},"worked-example","OEE, end to end",6.1,"One use case — OEE across three lines — broken into two apps and two shared services, then drawn out end to end.","\u002Fapplication-guide\u002Fflowfuse\u002Fworked-example\u002F",1787843651789]