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 instantly.

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.