Introducing MARZ: Runtime Config Hot-Swap for Java
Every Java developer knows the drill. You change a configuration value, and you restart the application. In production, that means deployment tickets, change windows, and 15-45 minutes of downtime risk — for a boolean toggle.
MARZ changes that with a single annotation:
@Marz(key = "feature.checkout.enabled", source = "file://config/features.yml")
private volatile boolean newCheckoutEnabled = false;
Edit the YAML file. The field updates in ~50ms. The next read sees the new value. No restart. No proxy. No bean rebuild.
Why not @RefreshScope?
Spring Cloud Config’s @RefreshScope works at the bean level — it tears down and reconstructs the entire bean when you hit /actuator/refresh. That means brief disruption, CGLIB proxy overhead on every read, and a dependency on Spring Cloud Config Server + a message bus.
MARZ works at the field level. A single volatile write. ~5ns reads. Zero infrastructure.
What’s next
MARZ is open source under the Apache 2.0 license. Star us on GitHub, try the quickstart, and let us know what you think.