Skip to content

GA4GH ServiceInfo service

Welcome to the ServiceInfo service documentation!

A lightweight, standalone Go service that standardizes and dynamically serves GA4GH ServiceInfo metadata across implementations such as DRS, TES, WES, and TRS.


What is this project?

In production GA4GH deployments (like DRS or TES), instances are required to expose a /service-info endpoint. Historically, this metadata has been hardcoded within the application binaries. This makes updating details (like organization URL, contact information, or environment) difficult, requiring a full code review, rebuild, CI run, and pod restart.

The ServiceInfo service solves this problem by running as a separate cloud-native microservice. It is deployed as its own Kubernetes Pod alongside your genomics service. Using Kubernetes Ingress rules, /service-info requests are redirected to this microservice, while all other paths go directly to the primary genomics service.

graph TD
    Client[External Client] -->|HTTP Request| Ingress[Kubernetes Ingress]

    Ingress -->|/service-info| SI["ServiceInfo Service\n(Go, ~10MB)"]
    Ingress -->|All other paths| Backend["GA4GH Genomics Service\n(DRS / TES / WES / TRS)"]

    SI -->|Hot Reloads| ConfigMap[ConfigMap volume]

Who is this for?

  • Genomics Platform Administrators: Deploying and managing GA4GH endpoints in a Kubernetes cluster who want metadata updates without service interruption.
  • Software Engineers / Contributors: Developing new features or standard compliance improvements for GA4GH specifications.
  • Security & Compliance Officers: Requiring valid, standard-compliant ServiceInfo formats and active endpoints.

Key Features

  • Go-Powered: Single static binary, scratch base image (<20MB), starts in under 50ms with extremely low memory footprints (~15MB).
  • Zero-Downtime Hot Reloading: Automatically monitors ConfigMap changes using file watcher routines, revalidating and refreshing metadata dynamically in-memory without server restarts.
  • Standard Compliant: Validates required ServiceInfo fields (id, name, version, type, organization) when loading the YAML configuration.
  • Kubernetes Native: Includes /healthz and /readyz probes, metrics reporting for Prometheus via /metrics, and support for native Kubernetes Ingress routing.
  • Helm Support: Simple deployment via structured templates and standard values.


Project Governance

GA4GH Logo Google Summer of Code Logo

ServiceInfo service is an open-source project developed under the formal governance of the Global Alliance for Genomics and Health (GA4GH) during Google Summer of Code (GSoC) 2026.

We welcome contributions from developers of all backgrounds. Please refer to our Contributing Guidelines and Code of Conduct to get started.