Power Automate as the Orchestrator: What Actually Works… and What Never Comes Back.
Ever had a Power Automate flow wake you at 3:07 a.m. with 6,000 ghost runs and no clear owner? This video is your blueprint for taming the orchestrator before it tames you. You’ll learn how to design resilient Power Automate architectures with clean triggers, Dataverse as a single source of truth, and idempotent patterns that stop infinite loops, duplicate messages, and runaway approvals. We walk through real tenant horror stories – loops that ate API quotas, dead-owner flows, and approvals that never expired – then show step-by-step remediation patterns that actually hold in production. Discover golden rules for try/catch/finally scaffolds, correlation IDs, poison queues, and governance with service principals, DLP, monitoring, and dashboards that point straight to the wound. If you run automation at scale in Microsoft 365, this guide will help you cut noise, reduce costs, and let your flows – and your tenants – finally sleep.
In this reflective and metaphor-rich episode, the host explores the unseen architecture of modern systems, the resilience required to build them, and the emotional realities of working with technology that outlives its creators. Through stories, analogies, and hard-won lessons, this episode blends engineering insight with poetic narrative. 💡 Key Themes & Insights 1. The Nature of Flow
- Every system, project, or idea begins with a spark of hope.
- But flow isn’t magic — it needs maintenance, intentionality, and structure.
- “Flow” becomes a character in the story: sometimes fragile, sometimes stubborn, sometimes unexpectedly generous.
2. The Hidden Labor of Systems
- Much of infrastructure work is invisible until it breaks.
- Logs, gateways, monitors, queues — all the quiet machinery that keeps modern life moving.
- The transcript describes these components as “haunted bridges” and “dark forests,” emphasizing the mystery and complexity behind them.
3. Emotional Weight of Technical Work
- The host reflects on the loneliness and responsibility of system ownership.
- Building something that will continue operating long after you’re gone.
- Understanding that the work often involves uncertainty, repetition, and perseverance.
4. Reliability Engineering as Storytelling
- Observing patterns, listening to logs, trying to interpret the behavior of machines.
- The idea that systems “whisper” clues about their future failures.
- A poetic reframing of SRE/DevOps as a conversation with unpredictable entities.
5. The Cost of Ignoring Structure
- Hope alone doesn’t keep systems alive — licensing, resource consumption, architecture, and discipline do.
- Without structure, even the most hopeful projects collapse under their own chaos.
🎙️ Notable Moments
- Opening metaphor: A vivid description of flow beginning as a “bright promise.”
- The haunted bridge analogy: A powerful visualization of gateways and network complexity.
- When the machine “sings”: A moment where system health is described as a kind of music.
- Reflection on legacy: The host touches on the idea that engineers build things that continue long after the creator disappears.
🔧 Topics Mentioned
- System logs & monitoring
- On-premises vs. cloud gateways
- Azure consumption
- Licensing constraints
- Reliability, observability, and operational discipline
- Human–machine collaboration
✨ Episode Takeaway Hope may start the journey, but reliability, structure, and continual care keep a system alive. This episode reminds us that the work of building long-lasting systems is both technical and deeply human.
Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-show-podcast--6704921/support.
Follow us on:
LInkedIn
Substack
1
00:00:00,000 --> 00:00:07,000
Every flow begins with hope, a small click, a bright promise.
2
00:00:07,000 --> 00:00:11,520
An email arrives, a team's message appears.
3
00:00:11,520 --> 00:00:15,760
Someone claps, someone says, finally.
4
00:00:15,760 --> 00:00:18,720
They always cheer at the beginning.
5
00:00:18,720 --> 00:00:25,040
No owner named, no logs written, 100 actions stitched like mismatched parts, and then one night
6
00:00:25,040 --> 00:00:31,440
it wakes, 6,000 messages before dawn, threads choke, cues grind, people ask who built
7
00:00:31,440 --> 00:00:34,040
this, silence answers.
8
00:00:34,040 --> 00:00:38,680
Here's what actually works, what returns when called, how to bind the orchestrator so
9
00:00:38,680 --> 00:00:45,240
it serves, not feeds, one rule if you break it, it wakes at 307 am.
10
00:00:45,240 --> 00:00:53,680
And something is listening, the entities that listen, triggers that never sleep, administrator.
11
00:00:53,680 --> 00:00:54,760
Do you hear that?
12
00:00:54,760 --> 00:01:00,160
The quiet hum under your tenant, it's not quiet, it's listening.
13
00:01:00,160 --> 00:01:05,240
Some triggers behave, they announce themselves with clean edges, they leave tracks you can
14
00:01:05,240 --> 00:01:09,960
follow when a row is added or modified in dataverse, it raises a hand, you bind it with
15
00:01:09,960 --> 00:01:16,600
an idempotent key, you hold a watermark, you use changed tokens, sins, curses, server
16
00:01:16,600 --> 00:01:21,560
side filters, it tells you only what changed, only once.
17
00:01:21,560 --> 00:01:28,060
Even an email arrives, you pre-filter by subject, by sender, by headers, you gate on status
18
00:01:28,060 --> 00:01:34,640
equals ready, you add a trigger condition so noise dies at the door, a scheduled tick,
19
00:01:34,640 --> 00:01:41,680
a steady heartbeat, once an hour, or once a day, never frantic, you cap it, you name it, you
20
00:01:41,680 --> 00:01:47,500
log every beat when a team's message is posted, you narrow the channel, you match a keyword,
21
00:01:47,500 --> 00:01:53,220
you keep concurrency off until you own a partition key, you refuse to let it fan out without a
22
00:01:53,220 --> 00:01:59,220
leash, when a case is created in dynamics, it's a proper birth, a single source of truth,
23
00:01:59,220 --> 00:02:03,820
so you trust the table, not the whispers, so you record the correlation id to the moment
24
00:02:03,820 --> 00:02:10,740
it cries, but some triggers misbehave, they smile, then they slip.
25
00:02:10,740 --> 00:02:16,140
When an item is deleted, it leaves nothing but a cold gap, your flow wakes to an absence,
26
00:02:16,140 --> 00:02:25,740
nobody, no details, just gone, you thought you could react, you can't, not reliably.
27
00:02:25,740 --> 00:02:31,900
The silencer is lying on premises gateway, the haunted bridge, sometimes it holds, sometimes
28
00:02:31,900 --> 00:02:39,180
it sways, latency crawls in, rit tries stack like bones, the bridge doesn't warn you before
29
00:02:39,180 --> 00:02:44,420
it drops a step into the river, recurrence every minute that is not a pulse, that is a
30
00:02:44,420 --> 00:02:49,500
summoning, a loop that calls itself, if you are applied to each nudges a record, the
31
00:02:49,500 --> 00:02:56,020
record, twitches, a new trigger fires, and then another, the quota goes hollow, then empty,
32
00:02:56,020 --> 00:03:04,540
flows triggered by flows, the chain ritual, you say only this once, it says again, one
33
00:03:04,540 --> 00:03:10,180
child calls another, apparent reawakings on a status change it created, you didn't set
34
00:03:10,180 --> 00:03:13,620
a max depth, you didn't set a gate, you just opened a door.
35
00:03:13,620 --> 00:03:19,500
Most people think triggers are simple switches, but triggers are ears, they hear everything,
36
00:03:19,500 --> 00:03:24,740
you must teach them to ignore, guardrails are not decoration, trigger conditions gate
37
00:03:24,740 --> 00:03:28,620
the first breath, if not ready, return to sleep.
38
00:03:28,620 --> 00:03:34,900
Pre-filters, cut the noise at the source, property filters only fields that matter or nothing
39
00:03:34,900 --> 00:03:41,380
moves, server side query let the data store refuse the crowd before it reaches you, headers
40
00:03:41,380 --> 00:03:47,860
to reduce payload, light steps only, no heavy footprints, ritual snippet, you will use
41
00:03:47,860 --> 00:03:56,420
it like salt on a sill, equals trigger outputs, body, status, ready.
42
00:03:56,420 --> 00:04:02,260
That single line bars the restless from your door, concurrency off by default, you don't
43
00:04:02,260 --> 00:04:06,100
turn it on because it's there, you turn it on when you own a partition key, when you can
44
00:04:06,100 --> 00:04:12,940
say this run touches only this shard, otherwise the creature splits and feeds from both hands,
45
00:04:12,940 --> 00:04:19,260
tenant tie in, you're not alone in the house, DLP walls keep cursed connectors out, solution
46
00:04:19,260 --> 00:04:23,980
aware flows keep builders from scribbling in the dark, connections reference service principles
47
00:04:23,980 --> 00:04:29,700
not people who come and go like weather, owner rotation on schedule, not after the obituary,
48
00:04:29,700 --> 00:04:35,500
and when you must listen to busy places, share point libraries that never sleep, pre-filter
49
00:04:35,500 --> 00:04:42,500
by path, by column, by a flag you set only once, debounts, batch, you're not here to hear
50
00:04:42,500 --> 00:04:47,140
every footstep, you're here to hear the right knock, but hearing is nothing without rules
51
00:04:47,140 --> 00:04:54,460
to bind what comes next, the ears are open, the house is aware, now you decide who may enter
52
00:04:54,460 --> 00:04:59,140
and how they leave, because the orchestrator is awake, and if you don't bind it it will
53
00:04:59,140 --> 00:05:06,780
bind you, the patterns that survive, protection rituals that hold, now bind it, golden rules
54
00:05:06,780 --> 00:05:14,000
first, not advice, law, try, catch finally three scopes, three circles of salt, in try you
55
00:05:14,000 --> 00:05:19,500
do the work, nothing clever, just the path you expect, in catch you tell the truth, status,
56
00:05:19,500 --> 00:05:26,140
stage, error code, the last action that screamed, in finally you clean the floor, close handles,
57
00:05:26,140 --> 00:05:32,340
and threads, write the tombstone, then decide if this run returns, or is put down, you
58
00:05:32,340 --> 00:05:38,540
log everything, everything, not because you crave noise, because silence lies, flow name,
59
00:05:38,540 --> 00:05:47,780
run night, environment, trigger, correlation id, error code, payload hash, person to notify,
60
00:05:47,780 --> 00:05:54,780
a link to the run, append only, never overwrite the past, it remembers, it teaches, terminate
61
00:05:54,780 --> 00:06:01,100
with reason codes, don't fail, speak, terminate success when you recover, retryable when the
62
00:06:01,100 --> 00:06:06,140
wind changes, fatal when the map is wrong, your dashboards will read this like omens, your
63
00:06:06,140 --> 00:06:12,260
responders will move, names bind demons, you stop calling things scope one, you carve names
64
00:06:12,260 --> 00:06:18,820
like gravestones, scope validate request, scope process order, scope handle errors, action
65
00:06:18,820 --> 00:06:25,660
get customer, var order id, var retry count, when it fails at 307 am you don't hunt, you
66
00:06:25,660 --> 00:06:32,100
point and you cut, dynamic content is a stranger, distrust it, coalesce every field you didn't
67
00:06:32,100 --> 00:06:39,100
create, string into, pull, cast the shape before you let it in, empty, on every branch that
68
00:06:39,100 --> 00:06:47,040
can go dark, if equals variables, vards status, ready, nulls are not bugs, their teeth,
69
00:06:47,040 --> 00:06:53,880
pat the door, version outside the beast, export unmanaged, commit to get, tag the release,
70
00:06:53,880 --> 00:06:59,640
note the change, you never ask, which version is in prod, you know, the commit tells you,
71
00:06:59,640 --> 00:07:05,280
the release notes whisper, what changed and why, control concurrency with a leash, off
72
00:07:05,280 --> 00:07:10,600
until you hold a partition key, if you own account id you can split by it, degree equals
73
00:07:10,600 --> 00:07:16,520
throughput math you can defend, ten shards, fine, 50, show your numbers, and when a message
74
00:07:16,520 --> 00:07:22,280
poisons the stream, you don't feed it twice, you send it to the side, your poison queue,
75
00:07:22,280 --> 00:07:27,160
you market, you move on, you don't stop the river for one stone, child microflows are
76
00:07:27,160 --> 00:07:32,920
small creatures, keep them that way, one job, stateless, tiny inputs, tiny outputs, no side
77
00:07:32,920 --> 00:07:39,080
effects, you pass a contract, not a story, child sanitize email, child create task, child
78
00:07:39,080 --> 00:07:45,160
post teams alert, each can be tested alone, each can be replaced without tearing the house,
79
00:07:45,160 --> 00:07:50,840
lend ferral changes, lock environment variables, reference secrets through key vault or service
80
00:07:50,840 --> 00:07:57,120
connections, not in the open air, layer your solutions, security roles like iron bars, connection
81
00:07:57,120 --> 00:08:02,800
references bound to service principles, not people who vanish at Fridays goodbye call,
82
00:08:02,800 --> 00:08:07,920
a flow that depends on a person is a candle in a draft, a flow that depends on a principle
83
00:08:07,920 --> 00:08:13,320
is a lantern bolted to stone, your copy paste ritual is not a hack, it's memory, a standard
84
00:08:13,320 --> 00:08:20,520
scaffold scope try, scope catch with has failed, has timed out, is skipped on run after,
85
00:08:20,520 --> 00:08:30,080
compose workflow meta, to a workflow, compose watch flow run url, the long string that stitches
86
00:08:30,080 --> 00:08:37,520
environment, id and run name into a door you can open, filter failed actions, convert them
87
00:08:37,520 --> 00:08:42,800
into a table you can read at a glance, post to the teams channel that listens without
88
00:08:42,800 --> 00:08:49,760
screaming, use ad mention tokens like bells, one person not ten, dev and prod, different
89
00:08:49,760 --> 00:08:56,720
bells the right ears wake, then the right, dita verse audit create with your contract fields,
90
00:08:56,720 --> 00:09:03,720
append only, calm, if the failure is transient market retriable and set a short back off,
91
00:09:03,720 --> 00:09:10,200
if it is permanent, fatal and ended, the message moves to the poison queue for daylight work,
92
00:09:10,200 --> 00:09:15,600
the real secret is simple, you do this everywhere, every flow, every team, every domain, it's
93
00:09:15,600 --> 00:09:21,360
boring, it's repeatable, it holds, now the small warnings that look like dust but cut
94
00:09:21,360 --> 00:09:27,420
like wire, never allow users to change environment variables that steer routing destinations
95
00:09:27,420 --> 00:09:32,800
or limits, those are rails not preferences, wrap them with security rolls, audit their
96
00:09:32,800 --> 00:09:39,280
edits, alert when they move, don't auto generate HTML tables from raw error blobs, you think
97
00:09:39,280 --> 00:09:44,160
you're making it readable, you're making it shapeless, project the fields action name,
98
00:09:44,160 --> 00:09:49,800
message, timestamp, correlation need, two columns for HTTP primary error and secondary
99
00:09:49,800 --> 00:09:57,400
path, if the first is empty the second will speak, retry is not hope, it's math, exponential
100
00:09:57,400 --> 00:10:04,920
back off, ceiling, circuit breaker, three tries for network flinch, one for a hard 403, if
101
00:10:04,920 --> 00:10:11,240
the breaker opens, you don't keep knocking, you mark, you notify, you stop, the system,
102
00:10:11,240 --> 00:10:21,000
breathes, and governance flows, govern, owner rotation runs monthly, connections rebind
103
00:10:21,000 --> 00:10:26,560
to service principles by policy, disabled accounts are purged from ownership lists,
104
00:10:26,560 --> 00:10:32,400
orphaned flows are not curiosities, they are ghosts, you end them or you adopt them, nothing
105
00:10:32,400 --> 00:10:39,440
just runs, when you copy this scaffold, do not trim the bones, developers will ask can
106
00:10:39,440 --> 00:10:44,880
we remove the team's post for now? no, the house must hear itself, can we drop the audit
107
00:10:44,880 --> 00:10:51,480
insert while testing? no, tests are where habits grow teeth, finally remember the rule you
108
00:10:51,480 --> 00:10:58,240
don't want, terminate on purpose, do not let a run wander in a do until with no hour
109
00:10:58,240 --> 00:11:04,940
glass, do not let a branch skip quietly into the weeds, end it, name it's end, leave a
110
00:11:04,940 --> 00:11:10,480
stone on top, these patterns don't make you safe, they make you ready, the orchestrator respects
111
00:11:10,480 --> 00:11:15,480
only structure, give it names, give it gates, give it records that outlive you, and when
112
00:11:15,480 --> 00:11:22,440
it wakes at 307 am, it will find you prepared, the flows that went wrong, urban legends from
113
00:11:22,440 --> 00:11:28,600
the tenant you've heard whispers, here are the bodies, the loop that ate a tenant, it began
114
00:11:28,600 --> 00:11:36,880
with kindness, a share point list, a flow that said when an item is updated, fix a field,
115
00:11:36,880 --> 00:11:42,040
set status to ready, simple, except the update woke the trigger, the trigger woke the update,
116
00:11:42,040 --> 00:11:47,840
a mirror staring at a mirror, apply to each nudged, each record to clean it, share point
117
00:11:47,840 --> 00:11:53,720
dutifully saved, the flow listened again, and again, by sunrise one million calls had
118
00:11:53,720 --> 00:12:01,460
gone into the dark, api quotas, hollowed dot service limits, screaming, uses woke to
119
00:12:01,460 --> 00:12:06,240
throttles errors and a quiet team's channel that began to stutter, remediation we cut the
120
00:12:06,240 --> 00:12:12,400
wire, bulk cancel the runs, patch the trigger with a condition, only act when status changes
121
00:12:12,400 --> 00:12:18,080
from not ready to ready, at a tombstone column last processed hash so the creature knows
122
00:12:18,080 --> 00:12:25,440
it has fed, owner reassigned to a service principal, concurrency capped, and a poison path, the
123
00:12:25,440 --> 00:12:31,160
hunger stopped, the approval that never returned, an approval left the team, their mailbox
124
00:12:31,160 --> 00:12:39,960
moved, their calendar changed shape, the flow waited anyway, day one, day 30, day 100.
125
00:12:39,960 --> 00:12:52,280
271 days of pending, like a light left on in an empty room, downstream SLA softened, then
126
00:12:52,280 --> 00:12:58,520
rotted, people resented, people escalated, the record did not care, it was still awaiting,
127
00:12:58,520 --> 00:13:04,740
we tracked the thing by its correlation id, we found its grave in run history, a line
128
00:13:04,740 --> 00:13:11,380
that said nothing but still waiting, the fix, backup approver bound by role, not name,
129
00:13:11,380 --> 00:13:18,460
expiration window enforced, on timeout, reassign, on second timeout, escalate and close, terminate
130
00:13:18,460 --> 00:13:24,740
with expired approval so dashboards learned, and at the source, approvals created with adaptive
131
00:13:24,740 --> 00:13:31,780
cards that confess when the user is gone, no more polite silence, the dead users flow,
132
00:13:31,780 --> 00:13:37,900
the owner was disabled on friday, the flow did not notice, all token still warm, every night
133
00:13:37,900 --> 00:13:45,340
its scent reports signed by a ghost, when the token finally cooled, it failed, quietly,
134
00:13:45,340 --> 00:13:50,740
because no one was listening, the tenant filled with onalous things, still ticking, still
135
00:13:50,740 --> 00:13:56,100
trying, we brought out the rights, owner reassignment protocol, inventory of flows by connection
136
00:13:56,100 --> 00:14:03,300
owner, service principle rebinding by policy, a monthly sweep that ends, or adopt strays,
137
00:14:03,300 --> 00:14:09,300
and a sentinel, a flow that watches for disabled accounts tied to live automations, it writes
138
00:14:09,300 --> 00:14:14,820
a warning in date of us, it pings the steward, it ends the haunt, cost shadows, runaway
139
00:14:14,820 --> 00:14:21,180
retries, premium connectors built by the breath, an on prem gateway flinched, recurrence
140
00:14:21,180 --> 00:14:27,300
hit again, calls stacked, as your consumption rose like a tide you pretend not to see,
141
00:14:27,300 --> 00:14:32,980
we pulled logs from audit, we traced correlation through log analytics, we saw the same error,
142
00:14:32,980 --> 00:14:38,740
echoed a hundred times, remediation, circuit breakers back off with ceilings, retrieable only
143
00:14:38,740 --> 00:14:42,660
for a minute, then fatal, then notify.
144
00:14:42,660 --> 00:14:47,740
The bill quieted, forensics live where the bodies lie, run history gaps tell you when
145
00:14:47,740 --> 00:14:53,660
the bridge dropped, correlation IDs lead you from the trigger to the last scream, audit logs,
146
00:14:53,660 --> 00:14:59,860
log analytics, that's where the names are, the kit is simple, bulk cancel, owner rebind,
147
00:14:59,860 --> 00:15:05,260
connection rotate, trigger patch, cap recurrence, and then align in the ledger, so the house remembers
148
00:15:05,260 --> 00:15:13,780
why the door is locked, the patterns that actually work, binding rituals for real teams, administrator,
149
00:15:13,780 --> 00:15:20,060
this is where the noise fades, not by chance, by design, reliable designs first, intake,
150
00:15:20,060 --> 00:15:25,860
validate, route, three doors, one direction, intake, gathers, it does not decide, it accepts
151
00:15:25,860 --> 00:15:31,660
a payload, stamps a correlation id, checks a signature, and writes a single thin record
152
00:15:31,660 --> 00:15:38,060
into dataverse, flow name, run ID, trigger, payload hash, status, it received, that's the
153
00:15:38,060 --> 00:15:39,260
mark.
154
00:15:39,260 --> 00:15:45,620
From there, validation runs like a quiet clerk, required fields, present, data types,
155
00:15:45,620 --> 00:15:52,140
cast, references, resolve or reject, no side effects yet, if it passes, routing decides
156
00:15:52,140 --> 00:15:57,660
which task router takes the case, if it fails, terminate with invalid input, write the
157
00:15:57,660 --> 00:16:03,780
tombstone, notify the Stuart once, and let the house stay calm, dataverse is your spine,
158
00:16:03,780 --> 00:16:05,820
the source of truth, not a rumor.
159
00:16:05,820 --> 00:16:10,580
When you route by dataverse, you avoid double work, you look up by key, you coalesce missing
160
00:16:10,580 --> 00:16:16,120
fields, you guard with alternate keys, so idempotence is baked in, you never update the
161
00:16:16,120 --> 00:16:21,620
same record twice without checking the watermark, the table remembers, run to run, task
162
00:16:21,620 --> 00:16:28,860
routers are light, deterministic, they read a rules table, no branching labyrinths inside
163
00:16:28,860 --> 00:16:35,700
the flow, they choose a path by a clause, type equal, sales and region equals NA, child
164
00:16:35,700 --> 00:16:41,180
sales on board, and they do not send emails, they do not create tasks, they point, that's
165
00:16:41,180 --> 00:16:47,900
all, no side effects means no ghosts, child micro flows do the work, tiny, contract driven,
166
00:16:47,900 --> 00:16:52,620
you pass only what they need, they return only what you asked, status output id in a small
167
00:16:52,620 --> 00:17:00,940
note, if they fail, they speak a code, retryable external 503, fatal bad mapping, the orchestrator
168
00:17:00,940 --> 00:17:06,660
listens to codes, not vibes, it decides the next breath, retry math sits beside them
169
00:17:06,660 --> 00:17:12,180
like a metronome, exponential back off with a ceiling you can say out loud, for 503 maybe
170
00:17:12,180 --> 00:17:17,620
10s 30s 60s, then circuit breaker opens, you mark the record, paused, write the retryate,
171
00:17:17,620 --> 00:17:23,900
and stop pushing, a timed watcher wakes later, checks the breaker, and tries again, or closes
172
00:17:23,900 --> 00:17:29,420
the book with fatal, and a ping to the steward, no run loops in the dark, no desperate hammering
173
00:17:29,420 --> 00:17:36,660
at a dead door, termination paths are named, not guest, success writes done, with an end time
174
00:17:36,660 --> 00:17:44,460
stamp and empty t-artics, retryable writes held, with next attempt, fatal writes dead, with
175
00:17:44,460 --> 00:17:50,700
a reason you can filter in a dashboard at 2pm or 307am, the dashboards breathe because
176
00:17:50,700 --> 00:17:55,620
the codes are clean, notifications live in one place, a team's channel that hears, not
177
00:17:55,620 --> 00:18:03,020
screams, the post includes the flow run url correlation id and a short table action message
178
00:18:03,020 --> 00:18:09,860
error path, it mentions one role or one person chosen by environment, dev test, prod different
179
00:18:09,860 --> 00:18:15,380
bells, the right ears wake, everyone else sleeps, audit entries go to date of verse, happened
180
00:18:15,380 --> 00:18:21,660
only, never overwrite, that's how mttr drops, run id to trigger to failure to resolution,
181
00:18:21,660 --> 00:18:26,660
the line forms a spine you can follow with a single query, and if you push to log analytics
182
00:18:26,660 --> 00:18:32,660
you can hunt by correlation id across services without guessing where the shadow moved, now
183
00:18:32,660 --> 00:18:39,660
the rooms where this holds, sales, onboarding micro flows that create tasks, set SLA timers
184
00:18:39,660 --> 00:18:45,260
and schedule reminders, intake writes the lead, validate verifies email and account, router
185
00:18:45,260 --> 00:18:51,300
sends by region and product, child flows create the tasks in data verse or dynamics, a timer
186
00:18:51,300 --> 00:18:56,940
child watches the due date, if a task lingers it posts a quiet nudge in teams with the record
187
00:18:56,940 --> 00:19:03,660
link once, then escalates, failure rate drops because each child only does one thing, API
188
00:19:03,660 --> 00:19:09,180
calls fall because nothing retreats in panic, the log tells you where time slipped, service
189
00:19:09,180 --> 00:19:14,180
auto classify email and escalate high priority cases, the intake listens to exchange with
190
00:19:14,180 --> 00:19:20,300
strict pre filters, subject and sender yes, but also a keyword list stored in data verse,
191
00:19:20,300 --> 00:19:26,380
validation casts the body strips noise and calculates a hash, if the hash matches the last processed
192
00:19:26,380 --> 00:19:32,700
payload, the flow steps aside, the router assigns to a queue by product, a child calls a
193
00:19:32,700 --> 00:19:38,740
model to score severity, critical gets an immediate teams post with mention to on call, normal
194
00:19:38,740 --> 00:19:43,700
gets a task, retreats for exchange hiccups happen in the watcher, not in the main run, your
195
00:19:43,700 --> 00:19:50,480
queue stops swallowing the same scream twice, HR staged approvals that don't wait forever,
196
00:19:50,480 --> 00:19:55,580
the router chooses a path by job family, child request approval posts an adaptive card with
197
00:19:55,580 --> 00:20:01,340
an expiration window, if it times out child reassign finds a backup approver by role, not
198
00:20:01,340 --> 00:20:07,340
name, calendar aware windows prevent asking a 2 a.m. each path writes its own termination
199
00:20:07,340 --> 00:20:14,300
code, expired approval, reassigned, approved, mttr drops because you can see which stage failed
200
00:20:14,300 --> 00:20:21,100
without opening the run, security, compliance checks with purview, often teams and sharepoint
201
00:20:21,100 --> 00:20:28,660
cleanup, Azure AD lifecycle hooks feed the intake, user disabled, license removed, group
202
00:20:28,660 --> 00:20:37,100
changed, router sends cleanup team, archive site, lock share, child flows perform the
203
00:20:37,100 --> 00:20:43,260
work, I dampotently, if the site is already archived, they return success without pretending
204
00:20:43,260 --> 00:20:49,100
to act, a purge engine runs on a schedule, it cancels hanging runs older than a rule, it
205
00:20:49,100 --> 00:20:53,860
archives payloads past retention, it deletes stale connections, it rotates owners back to
206
00:20:53,860 --> 00:20:59,780
service principles if a hand straight, the haunt ends because the house keeps closing doors,
207
00:20:59,780 --> 00:21:04,380
copy paste kits make this real, a child flow contract template, a team's message template
208
00:21:04,380 --> 00:21:10,780
with url composer, a dataverse audit create jason block, and a guide that says naming
209
00:21:10,780 --> 00:21:17,460
schema try catch scaffold router rules error codes, you don't invent the ritual every time
210
00:21:17,460 --> 00:21:22,820
you repeat it, that's how fear leaves, and the numbers change, api cut by a third sometimes
211
00:21:22,820 --> 00:21:30,180
more, failure rates from noisy 18% to quiet under 2 mttr sliding under 10 minutes because
212
00:21:30,180 --> 00:21:36,580
the first ping points straight to the wound, costs stop climbing the tenant sleeps, if
213
00:21:36,580 --> 00:21:43,100
you follow the marks the house stays quiet, the dark patterns things that never come back,
214
00:21:43,100 --> 00:21:48,660
some shapes don't return, they slip into the crawl space and when they move the walls crack,
215
00:21:48,660 --> 00:21:53,460
one flow with 300 actions, no that's not a flow, that's a maze you don't debug mazes
216
00:21:53,460 --> 00:21:59,060
you get lost in them, split by concern, compose a score, not a scream, orchestrator above,
217
00:21:59,060 --> 00:22:04,300
task rotors between child micro flows below anything else feeds the dark, do until with
218
00:22:04,300 --> 00:22:09,580
no timeout, never, that is a candle in a room with no air, it burns until it eats the table
219
00:22:09,580 --> 00:22:15,300
always add cap delay escape hatch, five tries back off, circuit breaker, if it forgets to
220
00:22:15,300 --> 00:22:20,660
stop you didn't build a loop, you built a trap, apply to each on large lists with concurrency,
221
00:22:20,660 --> 00:22:26,500
it feels fast, it is not, it is a stampede, shard by partition keys, paginate on the server,
222
00:22:26,500 --> 00:22:31,060
filter where the data sleeps, not where your flow weasers, let each shard touch only its own
223
00:22:31,060 --> 00:22:38,460
row, then and only then raise the degree, excel as a trigger, never, excel remembers and
224
00:22:38,460 --> 00:22:45,060
it punishes, files lock, rows shift, tables break when someone fixes formatting, use data
225
00:22:45,060 --> 00:22:52,700
verse or share point lists for state, import from excel, do not listen to it, the sheet lies,
226
00:22:52,700 --> 00:22:59,100
share point, busy library triggers, they never sleep, pre filter by path, by content type,
227
00:22:59,100 --> 00:23:06,060
by flag you control, batch updates, debounds change storms with a watermark column that moves
228
00:23:06,060 --> 00:23:11,300
only when you say, if you listen to every footstep, you'll never hear the knock, approvals
229
00:23:11,300 --> 00:23:17,380
with zero aerologic, that's not a request, that's a plea thrown into wind, add escalation,
230
00:23:17,380 --> 00:23:22,380
back up approver by roll, expiration and reassign, terminate with named codes, if no one
231
00:23:22,380 --> 00:23:28,420
answers the flow answers for them, and it ends, hard coded URLs and personal owners, that's
232
00:23:28,420 --> 00:23:33,420
a love letter to a future outage, put URLs in environment variables, lock them, bind connections
233
00:23:33,420 --> 00:23:38,600
to service principles, rotate owners on a schedule, people leave, services don't, chain
234
00:23:38,600 --> 00:23:44,860
ritual flows with no guard, flows triggering flows calling back their parents, waking themselves
235
00:23:44,860 --> 00:23:52,180
on their own edits, add trigger conditions, item potency keys, max depth, if a run can
236
00:23:52,180 --> 00:23:58,660
see its reflection, blind it, some patterns look brave, they are bait, leave them in the
237
00:23:58,660 --> 00:24:00,300
dark.
238
00:24:00,300 --> 00:24:06,820
The orchestrator blueprint, the safe architecture, now the warding, the blueprint that turns
239
00:24:06,820 --> 00:24:14,260
noise into work and work into quiet, master orchestrator, it listens once, only once, it
240
00:24:14,260 --> 00:24:21,260
deduplicates on site, payload hash or alternate key and stamps a correlation it that will not
241
00:24:21,260 --> 00:24:22,340
change.
242
00:24:22,340 --> 00:24:28,780
It logs the intake in dataverse, flow name, run it, ENV trigger hash status equals received,
243
00:24:28,780 --> 00:24:33,340
then it roots by type and environment, no side effects yet, the master's hands are clean,
244
00:24:33,340 --> 00:24:39,740
task routers, light, deterministic, their rules live in dataverse so humans can edit without
245
00:24:39,740 --> 00:24:47,020
cutting wire, if type ill sales in region ill NA send to child sales on board, if severity
246
00:24:47,020 --> 00:24:54,100
equal, critical, send to child notify on call, routers don't post, they don't write, they
247
00:24:54,100 --> 00:25:00,460
point, then pass, child micro flows tiny, idempotent, contract driven, you hand them the minimum,
248
00:25:00,460 --> 00:25:08,140
they return status, output id, reason code, no global state, no oh while I'm here, per domain,
249
00:25:08,140 --> 00:25:14,340
sales, service, HR, sec ops, each tested alone, each replaceable without tearing the house,
250
00:25:14,340 --> 00:25:22,660
error hub, a dataverse audit table, append only, severity, stage, reason code, flow run URL,
251
00:25:22,660 --> 00:25:28,100
correlation id, person to notify, workflow meta, it accepts rights from every child and
252
00:25:28,100 --> 00:25:34,820
every router, it feeds the dashboard without asking anyone to check the run, purge plus retention
253
00:25:34,820 --> 00:25:41,420
engine, the keeper, it cancels hanging runs past a rule that archives payloads beyond retention,
254
00:25:41,420 --> 00:25:47,300
it deletes stale connections, it rotates owners back to service principles if someone drifted,
255
00:25:47,300 --> 00:25:53,420
it clears poison cues into daylight work, it keeps the house from filling with bones, monitoring,
256
00:25:53,420 --> 00:26:00,300
a dashboard that always watches, failed runs, high frequency triggers, onalous flows, disabled
257
00:26:00,300 --> 00:26:08,980
flows, top API burners, mttr, slice by reason code, drill by correlation id, from whale to
258
00:26:08,980 --> 00:26:16,500
wound in one click, governance shell, environments dev test prod, dlp walls that keep cursed connectors
259
00:26:16,500 --> 00:26:23,140
out, solution only built, COE starter kit signals to harvest inventory, log analytics for the long
260
00:26:23,140 --> 00:26:29,060
trail, Azure AD lifecycle hooks to catch the moment a user goes dim, copilot as scribe, it reads
261
00:26:29,060 --> 00:26:35,460
the error hub, it writes the narrative with timestamps, at 0 to 11 router recue due to circuit breaker,
262
00:26:35,940 --> 00:26:41,780
it suggests fixes, it links to runs, it is not the handler, it's the chronicle you wish you had
263
00:26:41,780 --> 00:26:49,140
at 307 am, copy paste assets, a naming schema that binds demons, a try catch template, the data
264
00:26:49,140 --> 00:26:56,340
verse schema, the dashboard layout, the orchestration design guide, these are charms not trinkets, use them
265
00:26:56,340 --> 00:27:04,740
as written, metrics arc, the proof that the noise fades, API cut by 30 70%, failure rate from 18 to
266
00:27:04,740 --> 00:27:11,140
under 2, mttr under 10 minutes, cost curves flatten across licensing and Azure consumption, not luck,
267
00:27:11,140 --> 00:27:18,660
structure, with structure the noise fades, without it everything loops, one truth, the tool isn't the
268
00:27:18,660 --> 00:27:25,780
monster, neglect is, the gaps, the unlock doors in a silent house, if you want the charms, the naming
269
00:27:25,780 --> 00:27:30,500
schema, the try catch scaffold, the data verse audit table, the dashboard layout, the orchestrator
270
00:27:30,500 --> 00:27:36,900
blueprint take them, subscribe and watch the deeper build, keep them close, build carefully,
271
00:27:36,900 --> 00:27:40,500
or the machine will finish the work, long after you are gone.