[{"data":1,"prerenderedAt":224},["ShallowReactive",2],{"application-guide-nav":3,"agmd-flowfuse-it-architectures":118},[4,12,16,22,25,31,36,42,47,53,58,64,70,75,81,87,93,98,103,108,112],{"guide":5,"slug":6,"title":7,"navOrder":8,"parent":9,"blurb":10,"path":11},"flowfuse","overview","Overview",1,null,"The map of the FlowFuse guide — apps, architectures, and a worked example.","\u002Fapplication-guide\u002Fflowfuse\u002Foverview\u002F",{"guide":13,"slug":6,"title":7,"navOrder":8,"parent":9,"blurb":14,"path":15},"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":5,"slug":17,"title":18,"navOrder":19,"parent":9,"blurb":20,"path":21},"foundations","Foundations",2,"The foundation to build on: what FlowFuse is, its core pieces, and how code is shared across teams.","\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations\u002F",{"guide":13,"slug":17,"title":18,"navOrder":19,"parent":9,"blurb":23,"path":24},"The handful of concepts you need to build with Node-RED, and how they fit together.","\u002Fapplication-guide\u002Fnode-red\u002Ffoundations\u002F",{"guide":5,"slug":26,"title":27,"navOrder":28,"parent":9,"blurb":29,"path":30},"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.","\u002Fapplication-guide\u002Fflowfuse\u002Fapp-delivery-methods\u002F",{"guide":13,"slug":32,"title":33,"navOrder":28,"parent":9,"blurb":34,"path":35},"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":5,"slug":37,"title":38,"navOrder":39,"parent":26,"blurb":40,"path":41},"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":13,"slug":43,"title":44,"navOrder":39,"parent":32,"blurb":45,"path":46},"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":5,"slug":48,"title":49,"navOrder":50,"parent":26,"blurb":51,"path":52},"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":13,"slug":54,"title":55,"navOrder":50,"parent":32,"blurb":56,"path":57},"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":13,"slug":59,"title":60,"navOrder":61,"parent":32,"blurb":62,"path":63},"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":5,"slug":65,"title":66,"navOrder":67,"parent":9,"blurb":68,"path":69},"data-plane","Data plane",4,"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":13,"slug":71,"title":72,"navOrder":67,"parent":9,"blurb":73,"path":74},"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":13,"slug":76,"title":77,"navOrder":78,"parent":71,"blurb":79,"path":80},"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":13,"slug":82,"title":83,"navOrder":84,"parent":71,"blurb":85,"path":86},"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":5,"slug":88,"title":89,"navOrder":90,"parent":9,"blurb":91,"path":92},"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":5,"slug":94,"title":95,"navOrder":96,"parent":88,"blurb":9,"path":97},"it-architectures","IT architectures",5.1,"\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures\u002F",{"guide":5,"slug":99,"title":100,"navOrder":101,"parent":88,"blurb":9,"path":102},"ot-architectures","OT architectures",5.2,"\u002Fapplication-guide\u002Fflowfuse\u002Fot-architectures\u002F",{"guide":5,"slug":104,"title":105,"navOrder":106,"parent":88,"blurb":9,"path":107},"iiot-architectures","IIoT architectures",5.3,"\u002Fapplication-guide\u002Fflowfuse\u002Fiiot-architectures\u002F",{"guide":5,"slug":71,"title":72,"navOrder":109,"parent":9,"blurb":110,"path":111},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":5,"slug":113,"title":114,"navOrder":115,"parent":71,"blurb":116,"path":117},"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",{"id":119,"title":95,"blurb":9,"body":120,"description":215,"extension":217,"guide":5,"meta":218,"navOrder":96,"navTitle":95,"navigation":219,"parent":88,"path":220,"seo":221,"slug":94,"stem":222,"__hash__":223},"applicationGuideDoc\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures.md",{"type":121,"value":122,"toc":214},"minimark",[123,126],[124,125,95],"h1",{"id":94},[127,128,129,151,168,189],"guide-tabs",{},[130,131,133,140,144],"guide-tab",{"label":132},"On-prem IT",[134,135],"arch-diagram",{":edges":136,":groups":137,":legend":138,":nodes":139},"[{\"from\":\"users\",\"to\":\"plat\",\"label\":\"access\"},{\"from\":\"plat\",\"to\":\"i1\"},{\"from\":\"plat\",\"to\":\"i2\",\"label\":\"hosts\"},{\"from\":\"plat\",\"to\":\"i3\"}]","[{\"id\":\"dc\",\"label\":\"On-prem IT data center · self-managed\",\"accent\":\"green\",\"nodes\":[\"plat\",\"i1\",\"i2\",\"i3\"]}]","[{\"swatch\":\"green\",\"label\":\"IT zone\"}]","[{\"id\":\"users\",\"label\":\"IT users\",\"sub\":\"dashboards & tools\",\"accent\":\"slate\",\"col\":2,\"row\":1},{\"id\":\"plat\",\"label\":\"FlowFuse platform\",\"sub\":\"on your own servers\",\"accent\":\"indigo\",\"col\":2,\"row\":2},{\"id\":\"i1\",\"label\":\"Hosted Instance\",\"sub\":\"app\",\"accent\":\"indigo\",\"col\":1,\"row\":3},{\"id\":\"i2\",\"label\":\"Hosted Instance\",\"sub\":\"app\",\"accent\":\"indigo\",\"col\":2,\"row\":3},{\"id\":\"i3\",\"label\":\"Hosted Instance\",\"sub\":\"app\",\"accent\":\"indigo\",\"col\":3,\"row\":3}]",[141,142,143],"p",{},"The whole FlowFuse platform runs on the company's own servers in their IT data center. It hosts the apps as Hosted Instances and serves them to IT users. Nothing leaves the building unless you choose to connect it.",[141,145,146,150],{},[147,148,149],"strong",{},"Use it when"," — IT wants to own and run the platform entirely in-house, on their own infrastructure.",[130,152,154,160,163],{"label":153},"Cloud + per-site",[134,155],{":edges":156,":groups":157,":legend":158,":nodes":159},"[{\"from\":\"plat\",\"to\":\"a\"},{\"from\":\"plat\",\"to\":\"b\",\"label\":\"deploys\"},{\"from\":\"plat\",\"to\":\"c\"}]","[{\"id\":\"cloud\",\"label\":\"Cloud · your own AWS account\",\"accent\":\"blue\",\"nodes\":[\"plat\"]},{\"id\":\"sites\",\"label\":\"Sites · IT layer — one Remote Instance each\",\"accent\":\"green\",\"nodes\":[\"a\",\"b\",\"c\"]}]","[{\"swatch\":\"blue\",\"label\":\"Cloud\"},{\"swatch\":\"green\",\"label\":\"IT zone\"}]","[{\"id\":\"plat\",\"label\":\"FlowFuse platform\",\"sub\":\"your cloud account\",\"accent\":\"indigo\",\"col\":2,\"row\":1},{\"id\":\"a\",\"label\":\"Remote Instance\",\"sub\":\"Site A · IT layer\",\"accent\":\"slate\",\"col\":1,\"row\":2},{\"id\":\"b\",\"label\":\"Remote Instance\",\"sub\":\"Site B · IT layer\",\"accent\":\"slate\",\"col\":2,\"row\":2},{\"id\":\"c\",\"label\":\"Remote Instance\",\"sub\":\"Site C · IT layer\",\"accent\":\"slate\",\"col\":3,\"row\":2}]",[141,161,162],{},"The FlowFuse platform runs in the company's own cloud account (e.g. AWS) and deploys and manages a Remote Instance in each site's IT layer via the Device Agent. The cloud platform governs and deploys; each site's instance runs locally and keeps working on its own even if the link drops.",[141,164,165,167],{},[147,166,149],{}," — The platform lives in your cloud, but each site needs its own instance in its IT layer.",[130,169,171,177,184],{"label":170},"Scaled-out · hosting choice",[134,172],{":edges":173,":groups":174,":legend":175,":nodes":176},"[]","[{\"id\":\"sites\",\"label\":\"Sites · one independent FlowFuse server each, host it where you want\",\"accent\":\"green\",\"nodes\":[\"s1\",\"s2\",\"s3\"]}]","[{\"swatch\":\"green\",\"label\":\"Site\"}]","[{\"id\":\"s1\",\"label\":\"FlowFuse server\",\"sub\":\"Site A · on-prem\",\"accent\":\"indigo\",\"col\":1,\"row\":1},{\"id\":\"s2\",\"label\":\"FlowFuse server\",\"sub\":\"Site B · on-prem\",\"accent\":\"indigo\",\"col\":2,\"row\":1},{\"id\":\"s3\",\"label\":\"FlowFuse server\",\"sub\":\"Site C · in the cloud\",\"accent\":\"indigo\",\"col\":3,\"row\":1}]",[141,178,179,180,183],{},"Scale out by running a ",[147,181,182],{},"FlowFuse server at each site"," — host each one where it fits, on-prem or in the cloud. Each site's server is fully independent: its own platform, run and governed on its own. There's no central server above them.",[141,185,186,188],{},[147,187,149],{}," — Every site wants its own full, self-contained FlowFuse server, hosted wherever suits it, with nothing central above it.",[130,190,192,198,209],{"label":191},"Enterprise governance",[134,193],{":edges":194,":groups":195,":legend":196,":nodes":197},"[{\"from\":\"central\",\"to\":\"s1\"},{\"from\":\"central\",\"to\":\"s2\",\"label\":\"dev once · share code down\"},{\"from\":\"central\",\"to\":\"s3\"}]","[{\"id\":\"ent\",\"label\":\"Corporate · company-wide apps\",\"accent\":\"indigo\",\"nodes\":[\"central\"]},{\"id\":\"servers\",\"label\":\"Sites · apps that run locally\",\"accent\":\"green\",\"nodes\":[\"s1\",\"s2\",\"s3\"]}]","[{\"swatch\":\"green\",\"label\":\"Site server\"}]","[{\"id\":\"central\",\"label\":\"FlowFuse\",\"sub\":\"corporate apps\",\"accent\":\"indigo\",\"col\":2,\"row\":1},{\"id\":\"s1\",\"label\":\"FlowFuse server\",\"sub\":\"Site A · local apps\",\"accent\":\"indigo\",\"col\":1,\"row\":2},{\"id\":\"s2\",\"label\":\"FlowFuse server\",\"sub\":\"Site B · local apps\",\"accent\":\"indigo\",\"col\":2,\"row\":2},{\"id\":\"s3\",\"label\":\"FlowFuse server\",\"sub\":\"Site C · local apps\",\"accent\":\"indigo\",\"col\":3,\"row\":2}]",[141,199,200,201,204,205,208],{},"Split where apps live: company-wide apps run on a central corporate FlowFuse, while apps specific to a site run locally on that site's own FlowFuse server. You can still develop in one place and ",[147,202,203],{},"share code down"," to the sites — but because these are separate servers, that travels over the ",[147,206,207],{},"GitHub bridge or a snapshot export",", not a Pipeline (a Pipeline only promotes within a single platform).",[141,210,211,213],{},[147,212,149],{}," — Some apps belong to the whole company and some are site-specific, and you want to build centrally but let each site run its own local apps.",{"title":215,"searchDepth":67,"depth":67,"links":216},"",[],"md",{},true,"\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures",{"title":95,"description":215},"application-guide\u002Fflowfuse\u002Fit-architectures","OWOo3a_3hyRRLVV-VcTmQbt6OEVJ35-qh6rGyC4yVGk",1787068105759]