Building Blocks
Cohesive. Infra
Cohesive.Infra is the forthcoming block for defining application infrastructure as a semantic intermediate representation.
Infrastructure becomes another interpretation of the Cohesive system model: compute, storage, databases, caches, buses, configuration, secrets, service bindings, and runtime topology can be described before committing to one deployment tool or platform.
Infrastructure As Semantics
Modern systems often define application behavior in one place and infrastructure behavior somewhere else: application configuration in code, local resources in Docker Compose, cloud resources in Pulumi or Terraform, service discovery in Aspire, orchestration in Kubernetes, distributed execution in Orleans, and adapter setup in startup code.
Cohesive.Infra provides one semantic layer for describing the resources, dependencies, bindings, and capabilities that make the system run.
What It Defines
The infrastructure model can describe:
- Services, workers, jobs, APIs, and process hosts.
- Databases, object stores, search indexes, queues, buses, caches, and model stores.
- Secrets, configuration sources, profiles, and generated outputs.
- Dependency edges, service bindings, health checks, ports, and endpoints.
- Runtime placement, scaling intent, environment boundaries, and capability requirements.
Integration
Infra connects naturally to Cohesive.Configuration for runtime values, Cohesive.Storage for backend selection, Cohesive.Api for exposed services, Cohesive.Processes for workers and queues, and Cohesive.Identity for secret and access boundaries.
Lowering Targets
| Target | Use | Projection |
|---|---|---|
| Aspire | Local and cloud-native application composition. | Service graph, resources, bindings, and local dev topology. |
| Pulumi | Cloud infrastructure provisioning. | Resource declarations, secrets, outputs, and environment wiring. |
| Docker Compose | Local or lightweight deployment. | Containers, ports, volumes, and dependency order. |
| Kubernetes | Container orchestration. | Deployments, services, config, secrets, jobs, and scaling. |
| Orleans | Distributed runtime. | Cluster configuration, grains, storage, streams, and host topology. |
Principle
Cohesive.Infra should not replace infrastructure platforms. It should let the system model declare what infrastructure means, then let adapters lower that meaning into the platform a team chooses.
