Skip to content

Commit ae72f4b

Browse files
authored
Merge pull request #244 from alphagov/update-sequence-diagram-to-include-delivery
Update the submission email sequence diagram
2 parents f2e961d + 40f9c03 commit ae72f4b

2 files changed

Lines changed: 24 additions & 16 deletions

File tree

diagrams/class-diagrams/runner.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,22 @@ title: GOV.UK Forms Runner app class diagram
77

88
```mermaid
99
classDiagram
10-
direction RL
11-
class `Submission`
12-
`Submission` : +jsonb answers
13-
`Submission` : +jsonb form_document
14-
`Submission` : +integer form_id
15-
`Submission` : +string mail_message_id
16-
`Submission` : +string mail_status
17-
`Submission` : +string mode
18-
`Submission` : +string reference
19-
`Submission` : +datetime sent_at
10+
direction RL
11+
class `Delivery`
12+
`Delivery` : +datetime delivered_at
13+
`Delivery` : +string delivery_reference
14+
`Delivery` : +datetime failed_at
15+
`Delivery` : +string failure_reason
16+
`Delivery` : +datetime last_attempt_at
17+
class `Submission`
18+
`Submission` : +jsonb answers
19+
`Submission` : +jsonb form_document
20+
`Submission` : +integer form_id
21+
`Submission` : +string mode
22+
`Submission` : +string reference
23+
`Submission` : +string submission_locale
24+
class `SubmissionDelivery`
25+
`Submission` --> `SubmissionDelivery`
26+
`Delivery` --> `SubmissionDelivery`
27+
`Submission` "0..*" -- "0..*" `Delivery`
2028
```

diagrams/sequence-diagrams/sending-submission-emails.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ break error
7575
end
7676
7777
ses->>worker: return message_id
78-
worker->>runner-db: set mail_message_id on Submission
79-
worker->>runner-db: set the last_delivery_attempt timestamp on Submission
78+
worker->>runner-db: create a Delivery record with the<br/> message_id from SES as the delivery_reference
8079
8180
ses-)inbox: send email
8281
note over ses,inbox: happens some time later
@@ -116,15 +115,15 @@ worker->>solidqueue-db: enqueue recurring receive bounces job
116115
worker->>solidqueue-db: dequeue receive bounces job
117116
worker->>sqs: get messages from bounces and complaints queue
118117
alt there is a bounce SQS message
119-
worker->>runner-db: get Submission by the message_id in the SQS message
120-
worker->>runner-db: update delivery_status of Submission to "bounced"
118+
worker->>runner-db: get Delivery where the delivery_reference is the<br/> message_id from the SQS message
119+
worker->>runner-db: set the failed_at timestamp on the Delivery
121120
worker->>worker: Log with the submission details
122121
worker->>sentry: send error event
123122
sentry->>support: Alert via Slack
124123
support->>support: Identify why the email bounced
125124
support->>support: Run rake task to retry submission
126125
else there is a complaint SQS message
127-
worker->>runner-db: get Submission by the message_id in the SQS message
126+
worker->>runner-db: get Delivery where the delivery_reference is the<br/> message_id from the SQS message
128127
worker->>worker: Log with the submission details
129128
end
130129
@@ -152,7 +151,8 @@ actor support as Forms team tech support
152151
worker->>solidqueue-db: enqueue recurring receive deliveries job
153152
worker->>solidqueue-db: dequeue receive deliveries job
154153
worker->>sqs: get messages from deliveries queue
155-
worker->>runner-db: get Submission by the message_id in the SQS message
154+
worker->>runner-db: get Delivery where the delivery_reference is the<br/> message_id from the SQS message
155+
worker->>runner-db: set the delivered_at timestamp on the Delivery
156156
worker->>worker: log a "form_submission_delivered" event
157157
note over worker,runner-db: we don't currently use the "delivered" status for anything other than for information
158158
```

0 commit comments

Comments
 (0)