iluwatar / iluwatar/java-design-patterns
External Configuration Store Pattern
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 94.7k
- Forks
- 27.4k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 10
Description
Description:
The External Configuration Store design pattern involves storing configuration settings outside of the application, which allows for the modification of these settings without the need to redeploy the application. This pattern is particularly useful for cloud-based applications where environments can change dynamically, and configurations need to be updated frequently.
Main elements of External Configuration Store pattern:
- Configuration Source: A centralized external source where configurations are stored. This can be a database, a cloud-based service, or a configuration server.
- Configuration Retrieval: Mechanism to fetch the configuration from the external store. This can be done at application startup and periodically at runtime to ensure the latest configuration is always applied.
- Configuration Management: Tools and interfaces to manage, update, and monitor the configurations in the external store.
- Fallback Mechanism: In case the external configuration source is unavailable, the application should have a fallback mechanism, such as default settings or cached configurations.
References:
- External Configuration Store - Microsoft Docs
- 12 Factor App - Store config in the environment
- GitHub Contribution Guidelines
Acceptance Criteria:
- Implement a mechanism to retrieve configurations from an external store (e.g., AWS SSM, Consul, etc.) and apply them to the application at startup and during runtime.
- Create a configuration management interface to allow for easy updates and monitoring of configuration settings.
- Ensure a fallback mechanism is in place to handle scenarios where the external configuration store is unreachable. This should include default settings or cached configurations.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points; first inspect the repository's existing pattern structure and configuration-related examples. Decide which external store and management interface fit the project before implementation. Done means startup and runtime retrieval, configuration updates and monitoring, and fallback to defaults or cached settings are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, java
- Domain
- backend-api-design, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100