Now in your hands
Memory Adaptive Runtime Zone
@Marz(key = "feature.checkout")
private volatile boolean enabled = false;
// Value updates at runtime. No restart.
Add @Marz to any field — boolean, int, long, double, or String.
Point it at your config file.
Change the value in your YAML, JSON, or properties file. The WatchService detects the change instantly.
The field swaps in ~50ms. Next read sees the new value. No restart, no proxy, no bean rebuild.
@Service
public class CheckoutService {
@Marz(key = "feature.checkout.enabled",
source = "file://config/features.yml")
private volatile boolean newCheckoutEnabled = false;
// Edit the YAML → field updates in ~50ms
// No restart. No proxy. No @RefreshScope. Just volatile.
} Add to your project
<dependency>
<groupId>com.mymarz</groupId>
<artifactId>marz-spring-boot-starter</artifactId>
<version>0.1.0</version>
</dependency> | MARZ | @RefreshScope | Rolling Restart | LaunchDarkly | |
|---|---|---|---|---|
| Config change speed | ~50ms | 2-10s (bean rebuild) | 15-45 min | ~200ms (network) |
| Read performance | ~31ns (volatile) | ~50ns (CGLIB proxy) | ~31ns (after restart) | ~1ms (SDK call) |
| Requires restart | No | No (but rebuilds beans) | Yes | No |
| Infrastructure needed | None | Config Server + Bus | CI/CD pipeline | SaaS dependency |
| Granularity | Field-level | Bean-level | Full app | Flag-level |
| Cost | Free (OSS) | Free | DevOps time | $20K-$120K/yr |
| @Marz | Naive file re-read | |
|---|---|---|
| Total time (1M reads) | ~32 ms | ~36.5 s |
| Read latency | 31 ns/op | 36,461 ns/op |
| Throughput | 32.3M ops/s | 27.4K ops/s |
| Read-path disk I/O | 0 bytes | ~2.03 GB |
Representative benchmark — 1M reads per strategy on Java 17, Apple Silicon. Exact figures vary by machine & JVM warmup; the CI test asserts a conservative ≥5× floor. The naive baseline re-opens and re-parses the file on every read; @Marz reads a volatile field and touches disk only when the file actually changes.
Add the Maven dependency. Annotate a field. Edit your config. You'll have runtime hot-swap in under 60 seconds.