Dec. 12, 2025

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

Transcript

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.