Skip to content

Commit 839038e

Browse files
authored
CCM-12774: Updated event names. Added reporting architecture (#77)
* CCM-12774: Started to make naming consistent between diagrams * CCM-12774: Updated event names, icons. Added agreed reporting architecture
1 parent 65529de commit 839038e

21 files changed

Lines changed: 146 additions & 57 deletions

docs/architecture/c4/notifhir/mesh/statusreporter/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ is_not_draft: false
88
last_modified_date: 2025-10-15
99
owner: Ross Buggins
1010
author: Tom D'Roza
11-
diagrams: [c4code-mesh-statusreporter]
11+
diagrams: [c4code-mesh-statusreporter-scheduler, c4code-mesh-statusreporter-generator, c4code-mesh-statusreporter-sender]
1212
events-raised: [mesh-status-report-sent]
1313
events-consumed: [reporting-daily-report-generated]
1414
c4type: code

docs/assets/aws-icons-mermaid.json

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

docs/collections/_diagrams/c4code-mesh-poller.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ title: c4code-mesh-poller
1010
architecture-beta
1111
group meshPoller(cloud)[MeshPoller]
1212
service meshDownloaded(aws:res-amazon-eventbridge-event)[Scheduled Poll Event]
13-
service pdmSaved(aws:res-amazon-eventbridge-event)[MESHFileAvailable Event]
13+
service pdmSaved(aws:res-amazon-eventbridge-event)[MESHInboxMessageReceived Event]
1414
service meshPollLambda(logos:aws-lambda)[MeshPoll] in meshPoller
1515
service mesh(server)[MESH]
1616

docs/collections/_diagrams/c4code-mesh-retriever.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ title: c4code-mesh-retriever
1010
```mermaid
1111
architecture-beta
1212
group meshRetriever(cloud)[MeshRetriever]
13-
service meshDownloaded(aws:res-amazon-eventbridge-event)[MESHFileAvailable Event]
14-
service pdmSaved(aws:res-amazon-eventbridge-event)[MESHFileDownloaded Event]
13+
service meshDownloaded(aws:res-amazon-eventbridge-event)[MESHInboxMessageReceived Event]
14+
service pdmSaved(aws:res-amazon-eventbridge-event)[ MESHInboxMessageDownloaded Event]
1515
service meshDownloadQueue(logos:aws-sqs)[MeshDownload Queue] in meshRetriever
1616
service meshDownloadLambda(logos:aws-lambda)[MeshDownload] in meshRetriever
1717
service mesh(server)[MESH]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
3+
title: c4code-mesh-statusreporter-generator
4+
5+
---
6+
7+
## Decisions
8+
9+
1. ReportScheulder lambda publishes a `GenerateReport` event for each trust that has new report data in the previous 24 hours.
10+
2. The event metadata contains the trust ID so the ReportGenerator lambda knows which trust to generate a report for.
11+
12+
```mermaid
13+
architecture-beta
14+
group reportGenerator(cloud)[ReportScheduler]
15+
service generateReportEvent(aws:res-amazon-eventbridge-event)[GenerateReport Event]
16+
service reportGeneratorLambda(logos:aws-lambda)[Report Generator] in reportGenerator
17+
service s3(logos:aws-s3)[Reports] in reportGenerator
18+
service reportsdb(logos:aws-dynamodb)[Reports] in reportGenerator
19+
service reportGeneratedEvent(aws:res-amazon-eventbridge-event)[ReportGenerated Event]
20+
21+
generateReportEvent:R -- L:reportGeneratorLambda
22+
reportGeneratorLambda:T <-- B:reportsdb
23+
reportGeneratorLambda:B --> T:s3
24+
reportGeneratorLambda:R --> L:reportGeneratedEvent
25+
```

docs/collections/_diagrams/c4code-mesh-statusreporter-2.md renamed to docs/collections/_diagrams/c4code-mesh-statusreporter-scheduler.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
---
22

3-
title: c4code-mesh-statusreporter-2
3+
title: c4code-mesh-statusreporter-scheduler
44

55
---
66

7+
## Decisions
8+
9+
1. ReportScheulder lambda publishes a `GenerateReport` event for each trust that has new report data in the previous 24 hours.
10+
2. The event metadata contains the trust ID so the ReportGenerator lambda knows which trust to generate a report for.
11+
712
```mermaid
813
architecture-beta
914
group reportScheduler(cloud)[ReportScheduler]
1015
service scheduledEvent(aws:res-amazon-eventbridge-event)[Scheduled Event]
1116
service reportSchedulerLambda(logos:aws-lambda)[Report Scheduler] in reportScheduler
17+
service reportsdb(logos:aws-dynamodb)[Reports] in reportScheduler
1218
service report1Event(aws:res-amazon-eventbridge-event)[GenerateReport Trust1]
1319
service report2Event(aws:res-amazon-eventbridge-event)[GenerateReport Trust2]
1420
service report3Event(aws:res-amazon-eventbridge-event)[GenerateReport TrustN]
@@ -17,6 +23,7 @@ architecture-beta
1723
junction j3
1824
1925
scheduledEvent:R -- L:reportSchedulerLambda
26+
reportSchedulerLambda:T -- B:reportsdb
2027
reportSchedulerLambda:R -- L:j1
2128
j1:T -- B:j2
2229
j1:B -- T:j3

docs/collections/_diagrams/c4code-mesh-statusreporter.md renamed to docs/collections/_diagrams/c4code-mesh-statusreporter-sender.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
---
22

3-
title: c4code-mesh-statusreporter
3+
title: c4code-mesh-statusreporter-sender
44

55
---
66

77

8-
98
```mermaid
109
architecture-beta
1110
group reportSender(cloud)[ReportSender]

docs/collections/_diagrams/c4code-pdm-poller.md

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,37 @@ description: PDM Poller
77
### Questions
88

99
1. What poll interval and duration is needed for the PDM Poller?
10-
2. Can the polling be managed within the lambda?
10+
11+
### Decisions
12+
13+
1. Use of an SQS Delay Queue to manage polling intervals
14+
2. `PDMResourceUnavailable` event to contain retry count
15+
3. PollPDM lambda to determine when max retries exceeded and emit a `PDMResourceRetriesExceeded` event
1116

1217
```mermaid
1318
architecture-beta
14-
service eventBus(aws:res-amazon-eventbridge-event)[SavedToPDM Event]
15-
service pdmReady(aws:res-amazon-eventbridge-event)[PDMDocumentReadyEvent]
19+
service pdmResourceSubmitted(aws:res-amazon-eventbridge-event)[PDMResourceSubmitted Event]
20+
service pdmResourceAvailable(aws:res-amazon-eventbridge-event)[PDMResourceAvailable Event]
21+
service pdmResourceUnavailable2(aws:res-amazon-eventbridge-event)[PDMResourceAvailable Event]
22+
service pdmRetriesExceeded(aws:res-amazon-eventbridge-event)[PDMResourceRetriesExceeded Event]
23+
service pdmResourceUnavailable(aws:res-amazon-eventbridge-event)[PDMResourceUnavailable Event]
1624
group checkPdm(cloud)[PDMPoller]
17-
service pollPdmQueue(logos:aws-sqs)[PollPDM Queue] in checkPdm
25+
service pollPdmQueue(logos:aws-sqs)[PollPDM SQS Delay Queue] in checkPdm
1826
service pollPdmLambda(logos:aws-lambda)[PollPDM] in checkPdm
1927
service pdm(server)[PDM]
28+
junction j1
29+
junction j2
30+
junction j3
2031
21-
eventBus:R -- L:pollPdmQueue
32+
pdmResourceSubmitted:B -- T:j3
33+
pdmResourceUnavailable:T -- B:j3
34+
j3:R --> L:pollPdmQueue
2235
pollPdmQueue:R --> L:pollPdmLambda
23-
pollPdmLambda:B --> L:pdmReady
2436
pollPdmLambda:R <--> L:pdm
37+
pollPdmLambda:B -- T:j1
38+
j1:R --> L:pdmResourceUnavailable2
39+
j1:B -- T:j2
40+
j2:R --> L:pdmResourceAvailable
41+
j2:B --> L:pdmRetriesExceeded
42+
2543
```

docs/collections/_diagrams/c4code-pdm-upload.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ description: PDM Upload
77

88
```mermaid
99
architecture-beta
10-
service meshDownloaded(aws:res-amazon-eventbridge-event)[MESHFileDownloaded Event]
11-
service pdmSaved(aws:res-amazon-eventbridge-event)[SavedToPDM Event]
10+
service meshDownloaded(aws:res-amazon-eventbridge-event)[MESHInboxMessageDownloaded Event]
11+
service pdmSaved(aws:res-amazon-eventbridge-event)[PDMResourceSubmitted Event]
1212
group uploadToPdm(cloud)[UploadToPDM]
1313
service uploadQueue(logos:aws-sqs)[UploadToPDM Queue] in uploadToPdm
1414
service uploadLambda(logos:aws-lambda)[UploadToPDM] in uploadToPdm

docs/collections/_diagrams/c4code-printer-removefromqueue.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
---
22

33
title: c4code-printer-removefromqueue
4-
description: PDM Upload
4+
description: Manage TTL
55
---
66

77

88
```mermaid
99
architecture-beta
1010
group manageTTL(cloud)[ManageTTL]
11+
service pollEvent(aws:res-amazon-eventbridge-event)[Scheduled Poll TTL Event]
1112
service manageLambda(logos:aws-lambda)[Poll TTL] in manageTTL
1213
service manageDb(logos:aws-dynamodb)[ItemsWithTTL] in manageTTL
1314
service ttlStream(aws:res-amazon-dynamodb-stream) in manageTTL
1415
service manageTtlExpiry(logos:aws-lambda)[HandleTTLExpiry] in manageTTL
15-
service printTTLExpired(aws:res-amazon-eventbridge-event)[PrintTTLExpired] in manageTTL
16+
service printTTLExpired(aws:res-amazon-eventbridge-event)[ItemReady Event] in manageTTL
1617
18+
pollEvent:R -- L:manageLambda
1719
manageLambda:R -- L:manageDb
1820
manageDb:R -- L:ttlStream
1921
ttlStream:B -- T:manageTtlExpiry

0 commit comments

Comments
 (0)