ADR-0005: Provider Trait for Cloud Abstraction
Status
Date
Context
Requirements
Decision
The Provider Trait
Factory Pattern
Common Data Types
Consequences
Positive
Negative
Neutral
Design Decisions
Why async_trait?
async_trait?Why Box<dyn Provider>?
Box<dyn Provider>?Why Send + Sync?
Send + Sync?Method Granularity
Alternatives Considered
Alternative 1: No Abstraction
Alternative 2: Enum-Based Dispatch
Alternative 3: Generic Parameters
Alternative 4: gRPC/Plugin System
Future Considerations
Provider-Specific Extensions
API Versioning
References
PreviousADR-0004: SSH Agent Forwarding for Git AccessNextADR-0006: Project Configuration Specification (spuff.yaml)
Last updated
Was this helpful?