diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 6ebaf0dbcf08..99defe728bdd 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md @@ -90,15 +90,13 @@ C4Container Container_Boundary(c1, "Warehouse & Supporting Systems") { Container(camo, "Camo", "image proxy") Container(web_app, "Web", "Python (Pyramid, SQLAlchemy)", "Delivers HTML and API content") - SystemQueue(sqs, "AWS SQS", "task broker") SystemDb(opensearch, "OpenSearch", "Index of projects, packages, metadata") SystemDb(db, "Postgres Database", "Store project, package metadata, user details") SystemDb(redis, "Redis", "Store short-term cache data") - Rel(web_app, sqs, "queue tasks") Rel(web_app, opensearch, "search for projects") Rel(web_app, db, "store/retrieve most data") - Rel(web_app, redis, "cache data") + Rel(web_app, redis, "cache data & task queue") } Rel(endUser, camo, "load images from project descriptions", "HTTPS") @@ -126,10 +124,7 @@ C4Container System(s3, "AWS S3", "Object store (archive)") Rel(web_app, s3, "stores package files") - SystemQueue(sqs, "AWS SQS", "task broker") - Rel(web_app, sqs, "queue sync to cache task") - - SystemDb(redis, "Redis", "Store short-term cache data") + SystemDb(redis, "Redis", "Store short-term cache data, task broker") Rel(web_app, redis, "get/set rate limits and cache data") } @@ -142,7 +137,7 @@ Our workers use Celery to run tasks. We run a single worker type, feeding off multiple queues. We also use Celery Beat to schedule tasks. -We currently use AWS SQS as the queue, +We currently use Redis as the queue, and Redis as the result backend and schedule storage. ```{mermaid} @@ -152,7 +147,6 @@ C4Container Container_Boundary(c1, "Supporting Systems") { SystemDb(redis, "Redis", "Store short-term cache data") - SystemQueue(sqs, "AWS SQS", "task broker") SystemDb(opensearch, "OpenSearch", "Index of projects, packages, metadata") SystemDb(db, "Postgres Database", "Store project, package metadata, user details") System(ses, "AWS SES", "Simple Email Service") @@ -160,13 +154,12 @@ C4Container System_Ext(fastly, "Fastly", "Content Delivery Network") - BiRel(worker, sqs, "get next task/ack") - BiRel(worker, redis, "store task results") + BiRel(worker, redis, "get next task/ack") BiRel(worker, db, "interact with models") BiRel(worker, opensearch, "update search index") Rel(worker, fastly, "purge URLs") Rel(worker, ses, "send emails") BiRel(worker_beat, redis, "fetch/store task schedules") - Rel(worker_beat, sqs, "schedule tasks") + Rel(worker_beat, redis, "schedule tasks") ```