Smilodon icon indicating copy to clipboard operation
Smilodon copied to clipboard

Approaches to Configuration

Open edmistond opened this issue 2 years ago • 1 comments

Before the project acquires more features and associated configuration values, we should agree on how we want to handle configuration.

Some general thoughts I have on this, colored by the year I spent at my previous job in the team's release manager role and dealing with these pain points:

  • Chaotic configurations lacking any enforcement mechanism are stressful for the people deploying and operating the application.
  • I've worked in projects with strongly typed configurations backed by FluentValidator - meaning the application won't even start up if you don't provide all mandatory configuration values - and found it to be a successful approach.
  • Being able to override configuration with an environment variable is often helpful.

I was going to cite Kyle McMaster's payroll processor project as an example of this but it seems he's not using it there; he and I worked together on those projects with strongly-typed config and payroll-processor is one of my go-to GitHub links when I'm trying to remember how to build approaches we worked on, or when I need an example of them. :smile: I will have to ask him if minimal APIs/etc are pushing people away from that as a best practice, or if it's just because his application doesn't have much in the way of configuration to begin with.

edmistond avatar Nov 28 '22 04:11 edmistond