Skip to content

Introduction

What is Fountain?

Fountain is a comprehensive Go framework and library for building production-grade distributed systems and microservices. It provides a unified abstraction layer over multiple protocols, databases, message brokers, and cloud services, letting you build, run, and monitor multi-protocol applications with minimal boilerplate. A single Fountain instance orchestrates servers, background jobs, cron tasks, and one-shot invokers under one consistent lifecycle.

When to use it

Reach for Fountain when an application needs to combine several of the following concerns behind one cohesive runtime:

  • Multi-protocol servers — HTTP (via Fiber), gRPC, TCP, UDP and QUIC hosted in a single application.
  • Unified lifecycle management — servers, background jobs, cron tasks, and one-shot invokers.
  • Databases and caches — PostgreSQL, MySQL, MongoDB, Redis, Cassandra, Elasticsearch and S3, plus in-memory, LRU, LFU and ARC caches.
  • Message brokers — NATS, RabbitMQ, Kafka and MQTT.
  • Service discovery — Consul, ETCD and Kubernetes.
  • Observability — OpenTelemetry tracing, Prometheus metrics, and structured logging.
  • Resilience patterns — circuit breakers, rate limiting, retries and backoff.
  • Authentication — JWT, OAuth2, Firebase and social auth.

How the docs are organized

  • Getting Started — install Fountain and bring up your first service.
  • Core Concepts — the lifecycle, runnables, and controller model.
  • Building a Service — assemble a real service from Fountain's building blocks.
  • ftkit CLI — scaffold and verify standards-compliant services.
  • API Reference — package-level reference for the framework and its libraries.

Module & versions

Fountain is published as the Go module gitlab.soludian.com/soludian/fountain and targets Go 1.25.4 (per go.mod). It is proprietary software, licensed by Soludian Technology Solution Co., Ltd.