docs: update presentation slides
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.3 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
@@ -55,18 +55,7 @@ const slides = [
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
eyebrow: '06 / Safe Claim',
|
eyebrow: '06 / State',
|
||||||
title: 'PostgreSQL Chooses the Winner',
|
|
||||||
subtitle: 'Atomic claim uses row locks and SKIP LOCKED to avoid double execution.',
|
|
||||||
image: 'images/06-claim.png',
|
|
||||||
notes: [
|
|
||||||
'The worker selects the next eligible queued job ordered by priority, available_at, created_at, and id.',
|
|
||||||
'Inside one transaction, it uses <code>SELECT ... FOR UPDATE SKIP LOCKED</code>, then marks the row running, increments attempts, and sets the lease.',
|
|
||||||
'When many threads race, one locks the row; the others skip it instead of waiting and accidentally claiming the same job.'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
eyebrow: '07 / State',
|
|
||||||
title: 'Status Transitions Are Explicit',
|
title: 'Status Transitions Are Explicit',
|
||||||
subtitle: 'The queue allows only meaningful movement between queued, running, succeeded, and failed.',
|
subtitle: 'The queue allows only meaningful movement between queued, running, succeeded, and failed.',
|
||||||
image: 'images/07-state.png',
|
image: 'images/07-state.png',
|
||||||
@@ -76,6 +65,17 @@ const slides = [
|
|||||||
'When attempts are exhausted, the job becomes failed. Manual retry can move failed back to queued and resets the attempt count.'
|
'When attempts are exhausted, the job becomes failed. Manual retry can move failed back to queued and resets the attempt count.'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
eyebrow: '07 / Safe Claim',
|
||||||
|
title: 'PostgreSQL Chooses the Winner',
|
||||||
|
subtitle: 'Atomic claim uses row locks and SKIP LOCKED to avoid double execution.',
|
||||||
|
image: 'images/06-claim.png',
|
||||||
|
notes: [
|
||||||
|
'The worker selects the next eligible queued job ordered by priority, available_at, created_at, and id.',
|
||||||
|
'Inside one transaction, it uses <code>SELECT ... FOR UPDATE SKIP LOCKED</code>, then marks the row running, increments attempts, and sets the lease.',
|
||||||
|
'When many threads race, one locks the row; the others skip it instead of waiting and accidentally claiming the same job.'
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
eyebrow: '08 / Ownership',
|
eyebrow: '08 / Ownership',
|
||||||
title: 'Current Owner + Attempt Is the Write Token',
|
title: 'Current Owner + Attempt Is the Write Token',
|
||||||
|
|||||||
Reference in New Issue
Block a user