diff --git a/README.md b/README.md index 5af3a52..e9d9f49 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ $ go install github.com/storacha/indexing-service/cmd@latest ## Deployment +> [!TIP] +> Take a look at the [infrastructure diagram](docs/infra.md) for an overview of what gets deployed. + Deployment of this service to AWS is managed by terraform which you can invoke with `make`. First, install OpenTofu e.g. diff --git a/docs/infra.md b/docs/infra.md new file mode 100644 index 0000000..f42af94 --- /dev/null +++ b/docs/infra.md @@ -0,0 +1,64 @@ +```mermaid +graph TB + %% VPC and Networking + VPC[VPC
10.0.0.0/16] --> PublicSubnets[Public Subnets] + VPC --> PrivateSubnets[Private Subnets] + PublicSubnets --> IGW[Internet Gateway] + PublicSubnets --> NAT[NAT Gateways] + NAT --> PrivateSubnets + + %% API Gateway + APIGW[API Gateway v2
HTTP API] --> Lambda + APIGW --> CustomDomain[Custom Domain
*.indexer.storacha.network] + CustomDomain --> Route53[Route53
DNS Zone] + CustomDomain --> ACM[ACM Certificate] + + %% Lambda Functions + subgraph Lambda[Lambda Functions] + GETroot + GETclaim + GETclaims + POSTclaims + notifier + providercache + remotesync + end + + %% Event Sources + EventBridge[EventBridge
Scheduler] --> notifier + SNSTopic[SNS Topic
Head Changes] --> remotesync + SQSQueue[SQS Queue
Caching.fifo] --> providercache + SQSQueue --> SQSDLQueue[Dead Letter Queue] + + %% Storage + Lambda --> DynamoDB + subgraph DynamoDB[DynamoDB Tables] + metadata + chunk_links + legacy_claims + legacy_block_index + end + + Lambda --> S3 + subgraph S3[S3 Buckets] + caching + ipni_store + notifier_head + claim_store + legacy_claims_bucket + end + + %% Cache + Lambda --> ElastiCache + subgraph ElastiCache[Redis Serverless] + providers + indexes + claims + end + + %% Parameters + Lambda --> SSM[SSM Parameter Store
Private Key] + + %% Security + SecurityGroup[Security Group
Lambda] --> CacheSecurityGroup[Security Group
Redis] +```