GO Feature Flag (GOFF)

website·Indexed 33 days ago

https://gofeatureflag.org

A simple, complete, and lightweight self-hosted, cloud-native feature flag solution that is 100% open source and built on the open standard.

Tokens
448
Snippets
0
Records
5
Agent score
20%

What's inside GO Feature Flag

  1. Overview of GO Feature Flag (GOFF)

    GO Feature Flag (GOFF) is a lightweight, self-hosted, cloud-native feature flag solution licensed under MIT. It is built on the OpenFeature standard, meaning it avoids vendor lock-in and does not require a dedicated database to operate. It supports multi-language integration via OpenFeature providers for Go, Java/Kotlin, JavaScript/TypeScript, Python, .NET, Ruby, Swift, PHP, and Rust (via OFREP).
  2. Choose between GOFF Relay Proxy and Go Module

    Depending on the project architecture, GO Feature Flag can be implemented in two ways:

    1. Relay Proxy: A Docker or Kubernetes-deployable API server that enables multi-language support by acting as an OpenFeature provider.
    2. Go Module: An embedded evaluation library for projects written exclusively in Go.
  3. Implement rollout strategies and experimentation

    GO Feature Flag supports several rollout strategies to control feature release:

    • Percentage: Enable a feature for a specific percentage of users.
    • Progressive: Gradually increase the rollout percentage over time.
    • Scheduled: Trigger flag updates based on a specific time/date.
    • Experimentation: Perform A/B testing to compare different feature variants.
  4. Export flag evaluation data and notifications

    GO Feature Flag can export flag-usage data and send change notifications to external systems:

    • Data Export Destinations: S3, GCS, Kafka, Kinesis, SQS, Pub/Sub, BigQuery, Azure Blob Storage, Webhook, OpenTelemetry, logs, and local files.
    • Change Notifications: Slack, Discord, Microsoft Teams, Webhook, and logs.
  5. Configure flag storage and retrieval

    GO Feature Flag stores flag configurations in YAML, JSON, or TOML formats. It supports a wide variety of storage backends (retrievers), including:

    • Version Control: GitHub, GitLab, Bitbucket
    • Cloud Storage: AWS S3, Google Cloud Storage, Azure Blob Storage
    • Infrastructure: Kubernetes ConfigMaps, local files
    • Databases: MongoDB, Redis, PostgreSQL
    • Other: HTTP endpoints