Designing a config API for microservices applications built using Go

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. jennifer

    Jennifer is a code generator for Go

    The design of the wrapper functions meant we couldn’t easily unmarshal the CUE value into the wrapper functions. This meant we needed to generate unmarshalled functions for the config types. We use the excellent Jennifer library by Dave (no really; github.com/dave/jennifer) for generating Go files.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. jsoniter

    A high-performance 100% compatible drop-in replacement of "encoding/json" (by json-iterator)

    For each Go type used within the config, we generate a separate unmarshaller function. The unmarshallers use json-iterator to process the output from CUE, while tracking the path within the config to the unmarshalled value. This path tracking will allow the function to check if live overrides have been provided on that path and return the override instead.

  4. Encore

    Open Source Development Platform for building robust type-safe distributed systems with declarative infrastructure

    We launched the initial version of config a couple of weeks ago in version 1.9.0. However, this is only the start of our journey of improving the state of the configuration of backend developers. As discussed above one of the key features we want to add next is the ability to allow applications to have parts of their configuration updated in realtime on a time-limited basis for dealing with incidents. This means adding a new API to give you the ability to get a channel from each wrapper to watch for changes in the value, allowing your application to react to configuration changes, such as resetting rate limiters to the new rates.

  5. cue

    The home of the CUE language! Validate and define text-based and dynamic configuration

    Finally, we settled on the same configuration language that we use internally for our own systems: CUE Lang. As it has many of the properties we where after:

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Go Performance: Pequenas mudanças que ajudam a melhorar o desempenho do seu app

    3 projects | dev.to | 30 Jul 2024
  • Runtime code generation and execution in Go

    8 projects | news.ycombinator.com | 29 May 2024
  • Handling high-traffic HTTP requests with JSON payloads

    5 projects | /r/golang | 7 Dec 2023
  • Rob Pike: Gobs of data (2011)

    10 projects | news.ycombinator.com | 4 Dec 2023
  • Fourteen Years of Go

    13 projects | news.ycombinator.com | 11 Nov 2023

Did you know that Go is
the 4th most popular programming language
based on number of references?