CONTROL

Now in your hands

Memory Adaptive Runtime Zone

@Marz(key = "feature.checkout")
private volatile boolean enabled = false;
// Value updates at runtime. No restart.

Three steps. Zero restarts.

01

Annotate

Add @Marz to any field — boolean, int, long, double, or String. Point it at your config file.

02

Edit config

Change the value in your YAML, JSON, or properties file. The WatchService detects the change in milliseconds — on local files, Docker volumes, and Kubernetes ConfigMaps.

03

Value updates

The field swaps in ~50ms. Next read sees the new value. No restart, no proxy, no bean rebuild.

One annotation. That's the entire API.

@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>

Honest comparison

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
~31ns read latency Measured volatile read. Zero IO. Zero proxy.
~50ms swap time WatchService detects change. Volatile field swaps value.
0 restarts Ever. That's the point.

1,000,000 reads, head-to-head.

@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
1,176× faster read path
100% read-path I/O eliminated

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.

Ready to stop restarting?

Add the Maven dependency. Annotate a field. Edit your config. You'll have runtime hot-swap in under 60 seconds.