Network Events: from imported connection to refreshed caches
NetworkEventOrchestrationWorkflow
→
ProcessUserUpdateBatchWorkflow
(Temporal)
1 · NEW CONNECTION + AFFECTED USERS
You
primary user
Alice
new connection (import)
Bob
via TEAM
Carol
via COMMUNITY
Dana
via DIRECT (knows you)
2 · GRAPH SERVICE — WORK OVERLAPS (SECOND DEGREE)
Alice
🏢 Acme Corp · 2019–2022
Eve
Frank
Grace
workWarmthTrigger(alice) — batches of 5, runs in graph service
RUNS BEFORE
any cache update
3 · POSTGRES — EVENT + PROPAGATED UPDATES
network_events #4821
event_type: CONNECTIONS_ADDED
person: you · metadata.newConnections: [alice]
status:
created
propagated_updates
#1 · Bob · via team
created
#2 · Carol · via community
created
#3 · Dana · via direct
created
→ users already see these as “pending updates” in their UI
4 · TASK QUEUES
primary-cache-updates
secondary-cache-updates
deferred (picked up by a later batch)
determineDeferralStatus
team → immediate
community → defer
direct → defer
5 · PROCESSUSERUPDATEBATCH (PER USER)
workflowId: user-updates-{userId} · batches of 10
fetchPendingUpdates()
processCacheUpdate()
applyNetworkStatsDelta()
updateEventStatusWithDiff()
Bob's refreshed cache
+ Alice (1st degree)
+ Eve (work overlap)
+ Frank (work overlap)
+ Grace (work overlap)
stats: before → after diff
overlaps already in graph ✓