explaingit

knightliao/disconf

5,525JavaAudience · developerComplexity · 4/5Setup · hard

TLDR

A central control panel for your Java app's settings. Change a config once in the web interface and all your running apps pick it up instantly, no server restart needed.

Mindmap

mindmap
  root((repo))
    What it does
      Central config store
      Live config updates
      No restart needed
    Tech stack
      Java
    Integration options
      Code annotations
      XML config files
    Fallback safety
      Auto local fallback
    Notable users
      Baidu
      Didi
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Manage different configs for dev, test, and production from one central place without manually editing files on each server.

USE CASE 2

Push a config change to dozens of running servers instantly, without restarting any of them.

USE CASE 3

Connect your Java app to a central config store using annotations or XML, with auto-fallback if the server goes offline.

Tech stack

Java

Getting it running

Difficulty · hard Time to first run · 1day+

Requires deploying the Disconf server and web interface before any apps can connect to it.

In plain English

Disconf is a distributed configuration management platform written in Java. It was built to solve a common problem in large software systems: when you run the same application across multiple environments, such as development, testing, and production, managing different configuration files for each environment becomes messy and error-prone. Disconf provides a central place to store and manage all those configurations, so one application package can be deployed anywhere without manually editing config files. One of its key features is live configuration updates. When you change a setting in the Disconf web interface, the running applications that use that configuration detect the change automatically and apply it without needing a restart or a redeployment. This is useful for large teams where restarting services to push a config change would cause downtime. The platform supports two ways to connect your Java code to it: using annotations, where you add a few markers directly to your code, or using XML configuration files with no code changes at all. This gives developers a choice between tighter integration or a fully hands-off approach. Disconf also includes a compatibility fallback: if the central configuration server is unavailable, the application falls back to its local configuration files automatically. The README is primarily in Chinese and describes notable users including Baidu (with over 20 product lines on the platform), Didi (the ride-hailing service), UnionPay, NetEase, and several other major Chinese internet companies. It ranked 16th in a 2015 top-100 new open-source projects list published by the Chinese open-source community OSChina. If you are a non-technical reader: think of this as a control panel that your software applications phone home to whenever they start up, asking for their current settings. Instead of baking the settings into each copy of the software, the settings live in one place that authorized people can update at any time, and the software picks up those changes without anyone flipping switches on the servers directly.

Copy-paste prompts

Prompt 1
Show me how to integrate Disconf into a Java Spring app using annotations so my app pulls settings from a central Disconf server at startup.
Prompt 2
Write the XML configuration needed to connect a Java app to Disconf without modifying any existing Java code.
Prompt 3
What happens when the Disconf server goes down? Walk me through the automatic fallback behavior and how to test it locally.
Prompt 4
How do I set up the Disconf web interface to manage configurations for three different environments: dev, staging, and prod?
Open on GitHub → Explain another repo

← knightliao on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.