This example shows how you can overcome some of the challenges you will face in a distributed architecture:
Distributed stack traces between REST services. Know what is the root cause right away.
DEBUG on ERROR. Debug logs attached to the service error response, of all the services involved!
PROFILE detail on slow requests. (continuous profiling)
Timeout Propagation.
Execution context available everywhere in the JAX_RS context. (Timeout, other baggage...)
JAX-RS Rest client with retry and hedged execution support.
Continuous profiling, with context enrichment see for more detail.
On demand profiling and tracing.
Binary (for efficiency), Json (for humans), CSV for excel wizards support everywhere see for more detail.
Deprecation support, clients will be notified when using deprecated endpoints or deprecated objects/attributes via HTTP Warning headers.
Actuator endpoints for logs, health, info, swagger docs, jmx, profiles, metrics. (see)
Serialization compatible DTO schema evolution (see, and see).
See the wiki for more detailed descriptions of the concepts implemented here
This demo is built and published to docker-hub, you can run this service by (install docker):
$ docker pull zolyfarkas/jaxrs-spf4j-demo:0.9-SNAPSHOT
$ docker run -p 8080:8080 zolyfarkas/jaxrs-spf4j-demo:0.9-SNAPSHOT