Skip to content
State machine (FSM) templates

State machine — one SQS message, at-least-once delivery and the DLQ

State machine for a single Amazon SQS standard-queue message showing available, in flight, deleted, expired and moved-to-dead-letter-queue, with the visibility timeout, the ChangeMessageVisibility heartbeat, the four-day retention period and the maxReceiveCount guard that decides redelivery versus redrive.

Template previewState machine (FSM)
SQS standard queue — one message, maxReceiveCount 55 states · 7 transitions · 6 eventsReceiveMessage [count < 5]ReceiveMessage [count = 5]retention 4 days elapseDeleteMessagevisibility timeout 30 sChangeMessageVisibility 0ChangeMessageVisibility 300availablein flightdeletedin orders-dlqexpiredAll 5 states are reachable and every transition names states that exist.OKAll 5 states are reachable from `Available`.OKEvery run from `Available` can reach a final state.OKAll 7 transitions name states that exist, so every arrow in the figure is drawn.

Make it your own.

title "SQS standard queue — one message, maxReceiveCount 5"
state Available label "available"
state InFlight label "in flight"
state Deleted label "deleted" final
state DeadLetter label "in orders-dlq" final
state Expired label "expired" final
initial Available

transition Available -> InFlight on "ReceiveMessage" [count < 5]
transition Available -> DeadLetter on "ReceiveMessage" [count = 5]
transition Available -> Expired on "retention 4 days elapse"
transition InFlight -> Deleted on "DeleteMessage"
transition InFlight -> Available on "visibility timeout 30 s"
transition InFlight -> Available on "ChangeMessageVisibility 0"
transition InFlight -> InFlight on "ChangeMessageVisibility 300"