Blueprint Composition Patterns
Prerequisites
Composition Patterns
1. Layered Architecture
{
"packages": [
{
"name": "@bluebricks/terraform_aws_vpc",
"id": "infrastructure_vpc"
},
{
"name": "@bluebricks/terraform_aws_subnet",
"id": "infrastructure_subnet",
"props": {
"vpc_id": {
"value": "Data.infrastructure_vpc.vpc_id"
}
}
},
{
"name": "@bluebricks/helm_nginx",
"id": "platform_nginx",
"props": {
"cluster_name": {
"value": "Data.infrastructure_subnet.cluster_name"
}
}
},
{
"name": "@bluebricks/helm_myapp",
"id": "application_myapp",
"props": {
"nginx_endpoint": {
"value": "Data.platform_nginx.endpoint"
}
}
}
]
}2. Hub and Spoke
3. Microservices Composition
4. Environment-Specific Composition
Dependency Management Patterns
1. Explicit Dependencies
2. Conditional Dependencies
3. Version Pinning
Output Management Patterns
1. Aggregated Outputs
2. Conditional Outputs
3. Structured Outputs
Expression Language Patterns
1. Dynamic Resource Naming
2. Conditional Package Configuration
3. Null Coalescing for Fallbacks
4. String Manipulation and Concatenation
5. Array and Object Access
6. Mathematical Operations
7. Complex Conditional Logic
8. Output Aggregation with Expressions
Best Practices
Package Selection
Dependency Design
Configuration Management
Expression Language Best Practices
Testing Strategy
Anti-Patterns to Avoid
1. Circular Dependencies
2. Over-Complex Dependencies
3. Unclear Output References
See also
Last updated
Was this helpful?

