[{"data":1,"prerenderedAt":267},["ShallowReactive",2],{"agmd-flowfuse-worked-examples":3,"application-guide-nav":166},{"id":4,"title":5,"blurb":6,"body":7,"description":155,"extension":156,"guide":157,"meta":158,"navOrder":159,"navTitle":5,"navigation":160,"parent":161,"path":162,"seo":163,"slug":13,"stem":164,"__hash__":165},"applicationGuideDoc\u002Fapplication-guide\u002Fflowfuse\u002Fworked-examples.md","Worked examples","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.",{"type":8,"value":9,"toc":148},"minimark",[10,14,40,47,54,59,62,128,132,145],[11,12,5],"h1",{"id":13},"worked-examples",[15,16,17,18,22,23,27,28,31,32,35,36,39],"p",{},"A ",[19,20,21],"strong",{},"use case"," is a problem to solve — a defined pain, stated in plain business terms: ",[24,25,26],"em",{},"\"track OEE across three lines,\""," ",[24,29,30],{},"\"warn the team before a tank runs dry.\""," The ",[19,33,34],{},"solution"," is an app — and a use case is rarely a single one. Most take ",[19,37,38],{},"one or more apps working together",".",[15,41,42,43,46],{},"Each worked example takes a real use case and works it end to end — the same way a FlowFuse ",[19,44,45],{},"Proof of Value"," does: name the use case, break it into the apps that solve it, pin down how each app is delivered and what shape it takes, then draw the whole architecture.",[15,48,49,50,53],{},"A solution can be delivered different ways — ",[19,51,52],{},"built entirely by FlowFuse, built together with your team, or built by you"," from these examples. The breakdown is the same either way.",[55,56,58],"h2",{"id":57},"from-use-case-to-apps","From use case to apps",[15,60,61],{},"Every example runs the same four moves:",[63,64,65,72,78,112],"ol",{},[66,67,68,71],"li",{},[19,69,70],{},"Name the use case"," — the pain in plain business terms, and what \"good\" looks like.",[66,73,74,77],{},[19,75,76],{},"Break it into apps"," — list each app the use case needs and say, in one sentence, what it does. Most use cases are more than one app.",[66,79,80,83,84,87,88,93,94,97,98,101,102,106,107,111],{},[19,81,82],{},"Pin down each app"," — for every app, name its ",[19,85,86],{},"delivery method"," (a ",[89,90,92],"a",{"href":91},"\u002Fapplication-guide\u002Fflowfuse\u002Fapp-delivery-methods\u002F","whole app"," or a reusable ",[89,95,96],{"href":91},"piece",") and its ",[19,99,100],{},"app pattern"," (",[89,103,105],{"href":104},"\u002Fapplication-guide\u002Fflowfuse\u002Fhardware-apps\u002F","hardware"," or ",[89,108,110],{"href":109},"\u002Fapplication-guide\u002Fflowfuse\u002Fsoftware-apps\u002F","software"," app), where it runs, and why that shape.",[66,113,114,117,118,122,123,127],{},[19,115,116],{},"Draw the architecture"," — place the apps, the ",[89,119,121],{"href":120},"\u002Fapplication-guide\u002Fflowfuse\u002Fdata-plane\u002F","data plane"," and the broker into one picture that shows how it ties together, and state the whole ",[89,124,126],{"href":125},"\u002Fapplication-guide\u002Fflowfuse\u002Farchitectures\u002F","architecture"," in a sentence.",[55,129,131],{"id":130},"the-examples","The examples",[133,134,136],"callout",{"icon":135},"i-lucide-arrow-right",[15,137,138,144],{},[19,139,140],{},[89,141,143],{"href":142},"\u002Fapplication-guide\u002Fflowfuse\u002Fworked-example\u002F","OEE, end to end →"," — one use case, two apps and two shared services, from edge to broker to cloud to history.",[15,146,147],{},"More worked examples will land here — each one a use case, broken into its apps and drawn out end to end.",{"title":149,"searchDepth":150,"depth":150,"links":151},"",4,[152,154],{"id":57,"depth":153,"text":58},2,{"id":130,"depth":153,"text":131},"A use case is a problem to solve — a defined pain, stated in plain business terms: \"track OEE across three lines,\" \"warn the team before a tank runs dry.\" The solution is an app — and a use case is rarely a single one. Most take one or more apps working together.","md","flowfuse",{},6,true,null,"\u002Fapplication-guide\u002Fflowfuse\u002Fworked-examples",{"title":5,"description":155},"application-guide\u002Fflowfuse\u002Fworked-examples","wg_NUgw8MaBAVgBi-UJQoyBzKofcomcPiiYpUI5hCUw",[167,173,177,182,185,190,195,200,205,210,215,221,225,228,234,240,245,250,255,260,262],{"guide":157,"slug":168,"title":169,"navOrder":170,"parent":161,"blurb":171,"path":172},"overview","Overview",1,"The map of the FlowFuse guide — apps, architectures, and a worked example.","\u002Fapplication-guide\u002Fflowfuse\u002Foverview\u002F",{"guide":174,"slug":168,"title":169,"navOrder":170,"parent":161,"blurb":175,"path":176},"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":157,"slug":178,"title":179,"navOrder":153,"parent":161,"blurb":180,"path":181},"foundations","Foundations","The foundation to build on: what FlowFuse is, its core pieces, and how code is shared across teams.","\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations\u002F",{"guide":174,"slug":178,"title":179,"navOrder":153,"parent":161,"blurb":183,"path":184},"The handful of concepts you need to build with Node-RED, and how they fit together.","\u002Fapplication-guide\u002Fnode-red\u002Ffoundations\u002F",{"guide":157,"slug":186,"title":187,"navOrder":188,"parent":161,"blurb":189,"path":91},"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":174,"slug":191,"title":192,"navOrder":188,"parent":161,"blurb":193,"path":194},"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":157,"slug":196,"title":197,"navOrder":198,"parent":186,"blurb":199,"path":104},"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).",{"guide":174,"slug":201,"title":202,"navOrder":198,"parent":191,"blurb":203,"path":204},"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":157,"slug":206,"title":207,"navOrder":208,"parent":186,"blurb":209,"path":109},"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).",{"guide":174,"slug":211,"title":212,"navOrder":208,"parent":191,"blurb":213,"path":214},"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":174,"slug":216,"title":217,"navOrder":218,"parent":191,"blurb":219,"path":220},"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":157,"slug":222,"title":223,"navOrder":150,"parent":161,"blurb":224,"path":120},"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.",{"guide":174,"slug":13,"title":5,"navOrder":150,"parent":161,"blurb":226,"path":227},"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":174,"slug":229,"title":230,"navOrder":231,"parent":13,"blurb":232,"path":233},"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":174,"slug":235,"title":236,"navOrder":237,"parent":13,"blurb":238,"path":239},"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":157,"slug":241,"title":242,"navOrder":243,"parent":161,"blurb":244,"path":125},"architectures","Architectures",5,"Every FlowFuse deployment is the same building blocks arranged for where it runs — pick the world you're designing for.",{"guide":157,"slug":246,"title":247,"navOrder":248,"parent":241,"blurb":161,"path":249},"it-architectures","IT architectures",5.1,"\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures\u002F",{"guide":157,"slug":251,"title":252,"navOrder":253,"parent":241,"blurb":161,"path":254},"ot-architectures","OT architectures",5.2,"\u002Fapplication-guide\u002Fflowfuse\u002Fot-architectures\u002F",{"guide":157,"slug":256,"title":257,"navOrder":258,"parent":241,"blurb":161,"path":259},"iiot-architectures","IIoT architectures",5.3,"\u002Fapplication-guide\u002Fflowfuse\u002Fiiot-architectures\u002F",{"guide":157,"slug":13,"title":5,"navOrder":159,"parent":161,"blurb":6,"path":261},"\u002Fapplication-guide\u002Fflowfuse\u002Fworked-examples\u002F",{"guide":157,"slug":263,"title":264,"navOrder":265,"parent":13,"blurb":266,"path":142},"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.",1787843652492]