forked from NationTech/harmony
Working on various ADR, cleaning up some stuff
This commit is contained in:
@@ -1,12 +1,18 @@
|
||||
**Architecture Decision Record: Harmony Infrastructure Abstractions**
|
||||
## Architecture Decision Record: Core Harmony Infrastructure Abstractions
|
||||
|
||||
**Status**: Proposed
|
||||
## Status
|
||||
|
||||
**Context**: Harmony is an infrastructure orchestrator written in pure Rust, aiming to provide real portability of automation across different cloud providers and infrastructure setups. To achieve this, we need to define infrastructure abstractions that are provider-agnostic and flexible enough to accommodate various use cases.
|
||||
Proposed
|
||||
|
||||
**Decision**: We will define our infrastructure abstractions using a domain-driven approach, focusing on the core logic of Harmony. These abstractions will only include the absolutely required elements for a specific resource, without referencing specific providers or implementations.
|
||||
## Context
|
||||
|
||||
**Example: Database Abstraction**
|
||||
Harmony is an infrastructure orchestrator written in pure Rust, aiming to provide real portability of automation across different cloud providers and infrastructure setups. To achieve this, we need to define infrastructure abstractions that are provider-agnostic and flexible enough to accommodate various use cases.
|
||||
|
||||
## Decision
|
||||
|
||||
We will define our infrastructure abstractions using a domain-driven approach, focusing on the core logic of Harmony. These abstractions will only include the absolutely required elements for a specific resource, without referencing specific providers or implementations.
|
||||
|
||||
### Example: Database Abstraction
|
||||
|
||||
To deploy a database to any cloud provider, we define an abstraction that includes essential elements such as:
|
||||
```rust
|
||||
|
||||
Reference in New Issue
Block a user