Composing
Composing in Typeflows means combining multiple configuration sources into unified solutions that meet your project’s specific needs. This operation resolves the tension between shared standards and project requirements.
Composition in Practice
Typeflows makes composition a first-class operation, enabling a layered configuration model where each layer serves a specific purpose - from broad organisational standards down to project-specific details.
Layered Architecture
Typeflows composition naturally creates layered architectures that mirror organisational structure:
Foundation Layer: Base configuration packages that provide fundamental organisational standards - security policies, monitoring configurations, and platform integrations.
Platform Layer: Platform-specific configurations that customise the foundation for your deployment environment - cloud provider settings and infrastructure templates.
Application Layer: Application-type specific configurations - framework settings, build pipelines, and testing tools.
Project Layer: Project-specific customisations - unique requirements, team preferences, and experimental features.
Each layer builds on the previous one, creating configurations that are both compliant with standards and tailored to specific needs.
Multiple Source Integration
Composition enables integrating configurations from multiple sources:
- Package dependencies that provide tested, shared configurations
- Local customisations that extend or modify package-provided defaults
- Environment variations that adapt configurations for different deployment contexts
- Conditional logic that includes different components based on build parameters
This flexibility allows projects to benefit from shared knowledge while maintaining the ability to meet unique requirements.
The Composing Advantage
Configuration composition provides:
- Flexibility: Combine any configuration sources to meet specific project needs
- Consistency: Share common standards while allowing project customisation
- Maintainability: Change individual layers without affecting others
- Scalability: Handle complex requirements through layered composition
- Reusability: Create reusable composition patterns across projects
By enabling flexible composition, Typeflows allows projects to benefit from shared standards while maintaining the flexibility to meet their unique requirements. This composition-first approach scales from simple projects to complex systems with dozens of configuration sources.
What would you like to do next?
How do we generate the final files?
What building blocks are available?