# apolloconfig/apollo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apolloconfig-apollo).**

29,762 stars · 10,175 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/apolloconfig/apollo
- Homepage: https://www.apolloconfig.com
- awesome-repositories: https://awesome-repositories.com/repository/apolloconfig-apollo.md

## Topics

`config-management` `configuration-management` `distributed-configuration` `microservices` `spring-boot` `spring-cloud`

## Description

Apollo is a centralized configuration management system designed to manage environment-specific application settings for microservices and servers. It serves as a central store for properties, YAML, and JSON data, providing a platform for versioning, auditing, and the dynamic delivery of configurations.

The system distinguishes itself through a dynamic delivery platform that supports real-time configuration pushes and grayscale releases. This allows updates to be rolled out to a small subset of service instances as a canary deployment to validate stability before a full fleet update.

Governance is handled through namespace-based access control, mandatory approval workflows for production releases, and comprehensive audit tracking that links configuration changes to operational logs. The platform also monitors the active configuration version of individual application instances to verify adoption and enable rapid rollbacks to previous stable states.

The project provides multi-language SDKs and a standardized HTTP interface to link applications to the central configuration store.

## Tags

### DevOps & Infrastructure

- [Application Settings Management](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/application-settings-management.md) — Manages environment-specific settings from a single interface to maintain consistency across different clusters and namespaces. ([source](https://github.com/apolloconfig/apollo#readme))
- [Configuration APIs](https://awesome-repositories.com/f/devops-infrastructure/configuration-apis.md) — Provides a language-agnostic HTTP interface for multi-platform SDKs to fetch and update settings via a central repository.
- [Microservice Configuration Stores](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/application-settings-management/application-module-configuration/module-configuration-stores/microservice-configuration-stores.md) — Provides a central repository for properties, YAML, and JSON settings delivered to distributed services without restarts.
- [Configuration SDKs](https://awesome-repositories.com/f/devops-infrastructure/configuration-sdks.md) — Provides multi-language SDKs and a standardized HTTP interface to link applications to the central configuration store. ([source](https://github.com/apolloconfig/apollo#readme))
- [Configuration Grayscale Deployment](https://awesome-repositories.com/f/devops-infrastructure/deployment-configuration-tools/configuration-grayscale-deployment.md) — Controls the release of configuration updates to a limited subset of application instances to validate stability before full rollout.
- [Configuration Canary Releases](https://awesome-repositories.com/f/devops-infrastructure/deployment-updates/canary-deployment-controllers/configuration-canary-releases.md) — Rolls out configuration changes to a small subset of service instances before applying them to the entire fleet.
- [Real-time Configuration Updates](https://awesome-repositories.com/f/devops-infrastructure/real-time-configuration-updates.md) — Delivers new settings to applications in real time to apply changes without requiring a system restart. ([source](https://github.com/apolloconfig/apollo#readme))
- [Grayscale Configuration Releases](https://awesome-repositories.com/f/devops-infrastructure/release-automation/release-group-filters/grayscale-configuration-releases.md) — Enables deploying changes to a small subset of instances first to observe behavior before updating the entire fleet. ([source](https://github.com/apolloconfig/apollo#readme))
- [Server Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/server-configuration-management.md) — Allows creating and updating server configuration values using a combination of keys and cluster identifiers. ([source](https://github.com/apolloconfig/apollo/blob/master/CHANGES.md))

### Software Engineering & Architecture

- [Centralized Configuration Systems](https://awesome-repositories.com/f/software-engineering-architecture/centralized-configuration-systems.md) — Provides a centralized system to organize and distribute application settings across multiple microservices to ensure consistency.
- [Configuration Version Snapshots](https://awesome-repositories.com/f/software-engineering-architecture/configuration-state-snapshots/configuration-version-snapshots.md) — Maintains a history of immutable configuration states to enable rapid rollbacks and precise auditing of all changes.
- [Configuration Versioning](https://awesome-repositories.com/f/software-engineering-architecture/configuration-versioning.md) — Tracks every release with a version history to revert settings to a previous known-good state quickly. ([source](https://github.com/apolloconfig/apollo#readme))
- [Configuration Namespace Isolation](https://awesome-repositories.com/f/software-engineering-architecture/multi-tenant-isolation-policies/configuration-namespace-isolation.md) — Isolates configuration data into logical groups with specific user roles and permissions to ensure secure multi-tenant management.
- [Configuration Formats](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/configuration-formats.md) — Stores and serves configuration data using properties, YAML, and JSON formats to meet various application requirements. ([source](https://github.com/apolloconfig/apollo/tree/master/e2e))
- [Approval Workflows](https://awesome-repositories.com/f/software-engineering-architecture/approval-workflows.md) — Governs the editing and publishing of configurations through a permission system and mandatory approval workflows. ([source](https://github.com/apolloconfig/apollo#readme))
- [Namespace Access Controls](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/reserved-names/access-restrictions/service-account-permissions/namespace-access-controls.md) — Grants and revokes user roles within specific namespaces to control access to configuration data. ([source](https://github.com/apolloconfig/apollo/tree/master/e2e))

### Data & Databases

- [Version-Controlled Configuration Stores](https://awesome-repositories.com/f/data-databases/local-persistence/configuration-persistence/version-controlled-configuration-stores.md) — Provides version-controlled storage for application settings to facilitate rapid rollbacks to previous stable states.

### Development Tools & Productivity

- [Real-Time Push Updates](https://awesome-repositories.com/f/development-tools-productivity/configuration-updates/real-time-push-updates.md) — Delivers configuration changes to application instances immediately using a long-polling or websocket-based notification mechanism.
- [Deployed Version Tracking](https://awesome-repositories.com/f/development-tools-productivity/version-monitoring/deployed-version-tracking.md) — Monitors the active configuration version of each application instance to verify successful deployment and adoption.

### Security & Cryptography

- [Microservice Configuration Management](https://awesome-repositories.com/f/security-cryptography/microservice-configuration-management.md) — Centralizes application settings across different environments and clusters to ensure consistency and simplify updates for microservices. ([source](https://github.com/apolloconfig/apollo/tree/master/e2e))
- [Centralized Secrets Management](https://awesome-repositories.com/f/security-cryptography/centralized-secrets-management.md) — Governs access to application settings and environment keys through a single interface with permission controls and approvals.
- [Compliance and Audit Tools](https://awesome-repositories.com/f/security-cryptography/compliance-and-audit-tools.md) — Provides utilities for enforcing administrative controls and audit logging to meet operational and regulatory standards.

### System Administration & Monitoring

- [Audit Logging Systems](https://awesome-repositories.com/f/system-administration-monitoring/audit-logging-systems.md) — Logs every administrative action to provide a traceable history for troubleshooting and regulatory compliance. ([source](https://github.com/apolloconfig/apollo#readme))
- [Administrative Change Auditing](https://awesome-repositories.com/f/system-administration-monitoring/audit-logging/administrative-change-auditing.md) — Records configuration updates and management actions to maintain a verifiable history of administrative activity.
- [Operation Correlation](https://awesome-repositories.com/f/system-administration-monitoring/audit-logs/operation-correlation.md) — Links individual configuration modifications to operational logs to trace the cause and impact of every system change.
- [Client Configuration State Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/client-configuration-state-monitoring.md) — Tracks which specific configuration version is currently active on every individual application instance. ([source](https://github.com/apolloconfig/apollo#readme))
- [Configuration Adoption Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/health-monitoring/configuration-adoption-monitoring.md) — Identifies active application instances and the specific versions of settings they are currently using. ([source](https://github.com/apolloconfig/apollo/blob/master/README.md))
