Functional Options is a pattern that feels very natural for Go. And it's helpful to create extensible configuration APIs for any case.
- Let you write APIs that can grow with time.
- Make the default options use case to be the simplest.
- Provide meaningful configuration parameters.