Under the hood
This is what is used under under the hood of InfraWeave, it is only using 5 core services.
Services
| AWS | Azure | GCP | Functionality |
|---|---|---|---|
| DynamoDB | Azure Cosmos DB | TBD | Various Tables (deployments, modules,…), Terraform state locks |
| S3 | Storage Account Blob | TBD | File storage, Terraform state |
| ECS (Fargate) | Azure Container Instances | TBD | Run environment |
| Cloudwatch | Azure Log Analytics | TBD | Log messages |
| Lambda | Azure Functions | TBD | Reconciler, API |
Considerations
- Cost should be low and only scale with usage; no start-fees
- Reduce complexity
- The runner should have VM-level isolation
Partitioning Strategies
AWS DynamoDB:
DynamoDB partitions data based on a partition key designed to evenly distribute workloads. To ensure a balanced data and request distribution across partitioning, InfraWeave uses a high-cardinality partition key which typically consists of deployment-id combined with environment. This optimizes performance and avoids bottlenecks such as “hot partitions”.
Azure Cosmos DB:
Cosmos DB instead partitions data using a logical partition key, grouping related items logically into fewer, larger partitions. Here InfraWeave partitions by subscription id.