@@ -90,15 +90,13 @@ C4Container
90
90
Container_Boundary(c1, "Warehouse & Supporting Systems") {
91
91
Container(camo, "Camo", "image proxy")
92
92
Container(web_app, "Web", "Python (Pyramid, SQLAlchemy)", "Delivers HTML and API content")
93
- SystemQueue(sqs, "AWS SQS", "task broker")
94
93
SystemDb(opensearch, "OpenSearch", "Index of projects, packages, metadata")
95
94
SystemDb(db, "Postgres Database", "Store project, package metadata, user details")
96
95
SystemDb(redis, "Redis", "Store short-term cache data")
97
96
98
- Rel(web_app, sqs, "queue tasks")
99
97
Rel(web_app, opensearch, "search for projects")
100
98
Rel(web_app, db, "store/retrieve most data")
101
- Rel(web_app, redis, "cache data")
99
+ Rel(web_app, redis, "cache data & task queue ")
102
100
}
103
101
104
102
Rel(endUser, camo, "load images from project descriptions", "HTTPS")
@@ -126,10 +124,7 @@ C4Container
126
124
System(s3, "AWS S3", "Object store (archive)")
127
125
Rel(web_app, s3, "stores package files")
128
126
129
- SystemQueue(sqs, "AWS SQS", "task broker")
130
- Rel(web_app, sqs, "queue sync to cache task")
131
-
132
- SystemDb(redis, "Redis", "Store short-term cache data")
127
+ SystemDb(redis, "Redis", "Store short-term cache data, task broker")
133
128
Rel(web_app, redis, "get/set rate limits and cache data")
134
129
}
135
130
@@ -142,7 +137,7 @@ Our workers use Celery to run tasks.
142
137
We run a single worker type, feeding off multiple queues.
143
138
We also use Celery Beat to schedule tasks.
144
139
145
- We currently use AWS SQS as the queue,
140
+ We currently use Redis as the queue,
146
141
and Redis as the result backend and schedule storage.
147
142
148
143
``` {mermaid}
@@ -152,21 +147,19 @@ C4Container
152
147
153
148
Container_Boundary(c1, "Supporting Systems") {
154
149
SystemDb(redis, "Redis", "Store short-term cache data")
155
- SystemQueue(sqs, "AWS SQS", "task broker")
156
150
SystemDb(opensearch, "OpenSearch", "Index of projects, packages, metadata")
157
151
SystemDb(db, "Postgres Database", "Store project, package metadata, user details")
158
152
System(ses, "AWS SES", "Simple Email Service")
159
153
}
160
154
161
155
System_Ext(fastly, "Fastly", "Content Delivery Network")
162
156
163
- BiRel(worker, sqs, "get next task/ack")
164
- BiRel(worker, redis, "store task results")
157
+ BiRel(worker, redis, "get next task/ack")
165
158
BiRel(worker, db, "interact with models")
166
159
BiRel(worker, opensearch, "update search index")
167
160
Rel(worker, fastly, "purge URLs")
168
161
Rel(worker, ses, "send emails")
169
162
170
163
BiRel(worker_beat, redis, "fetch/store task schedules")
171
- Rel(worker_beat, sqs , "schedule tasks")
164
+ Rel(worker_beat, redis , "schedule tasks")
172
165
```
0 commit comments