diff --git a/architecture.md b/architecture.md index d9f0d13..978faa4 100644 --- a/architecture.md +++ b/architecture.md @@ -171,6 +171,7 @@ NixOS is a Linux distribution with a [vibrant](https://repology.org/repositories As such, we see NixOS as the only viable way to reliably create a reproducible outcome for all the work we create. Considered alternatives include: + - containers: do not by themselves offer the needed reproducibility #### [npins](https://github.com/andir/npins) @@ -178,6 +179,7 @@ Considered alternatives include: Npins is a dependency pinning tool for Nix which leaves recursive dependencies explicit, keeping the consumer in control. Considered alternatives include: + - Flakes: defaults to implicitly following recursive dependencies, leaving control with the publisher. ### [OpenTofu](https://opentofu.org/) @@ -187,6 +189,7 @@ This has led it to offer a vibrant ecosystem of 'provider' plugins integrating v As such, it can facilitate automated deployment pipelines, including with — relevant to our project — hypervisors and DNS programs. Considered alternatives include: + - Terraform: not open-source ### [Proxmox](https://proxmox.com/) @@ -195,6 +198,7 @@ Proxmox is a hypervisor, allowing us to create VMs for our applications while ad In addition, it has been [packaged for Nix](https://github.com/SaumonNet/proxmox-nixos) as well, simplifying our requirements to users setting up our software. Considered alternatives include: + - OpenNebula: seemed less mature ### [Garage](https://garagehq.deuxfleurs.fr/) @@ -203,6 +207,7 @@ Garage is a distributed object storage service. For compatibility with existing clients, it reuses the protocol of Amazon S3. Considered alternatives include: + - file storage: less centralized for backups ### [PostgreSQL](https://www.postgresql.org/) @@ -211,6 +216,7 @@ PostgreSQL is a relational database. It is used by most of our applications. Considered alternatives include: + - Sqlite: default option for development in many applications, but less optimized for performance, and less centralized for backups ### [Valkey](https://valkey.io/) @@ -219,6 +225,7 @@ Valkey is a key-value store. It is an open-source fork of Redis. Considered alternatives include: + - Redis: not open-source ### [OpenSearch](https://opensearch.org/) @@ -227,6 +234,7 @@ OpenSearch offers full-text search, and is used for this in many applications. It is an open-source fork of ElasticSearch. Considered alternatives include: + - ElasticSearch: not open-source ### [PowerDNS](https://github.com/PowerDNS/pdns) @@ -234,6 +242,7 @@ Considered alternatives include: PowerDNS is a mature DNS server. It further offers an admin front-end. Considered alternatives include: + - hickory-dns: no front-end - core-dns: no front-end @@ -242,6 +251,7 @@ Considered alternatives include: Authelia is a single sign-on provider that integrates with LDAP. Considered alternatives include: + - KaniDM: does not do proper LDAP - Authentik: larger package with focus on many things we do not need - Keycloak: larger package with focus on many things we do not need @@ -251,5 +261,6 @@ Considered alternatives include: Lldap is a light LDAP server, allowing to centralize user roles across applications. Considered alternatives include: + - 389 DS: older larger package - FreeIPA: wrapper around 389 DS