HivePaaS
An open-source, self-hosted PaaS on Docker Swarm. Deploy apps, databases and functions from one VPS to a whole cluster, with SSL, backups and autoscaling built in.
A web client implementation - the post-horse that carries the envoy
Developer toolsKotlin · JavaGitHub @InqudiumOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Veredium is a web client implementation — named after the veredus, the post-horse of the Roman cursus publicus: the mount that carries the envoy to the foreign party and back. The ride whose outcome Legatium records.
Taken from the repository README
Loading the full README.
Read the full README ↗Veredium is a web client implementation — named after the Roman veredus, the post-horse of the cursus publicus: the mount that carries the envoy to the foreign party and back. Its sibling Legatium records what the envoy's call came to; Veredium is the ride itself.
A host declares the client module of the stack it calls with - veredium-restclient for the
blocking client, veredium-webclient for the reactive one, both for a host that runs the two
side by side (ADR-0003).
Each brings veredium-core along. The badge shows the current release on Maven Central — use
that version where the snippet says ...:
<dependency>
<groupId>eu.inqudium</groupId>
<artifactId>veredium-restclient</artifactId>
<version>...</version>
</dependency>
Veredium derives from veredus, the post-horse of the cursus publicus, the Roman state courier service: the fast horse a rider took from one station (mutatio) to the next, changed there for a fresh one, and rode on. A web client is exactly that: not the message and not the envoy, but the mount that carries them to the other side — and the one that has to be sound for the journey to end well.
The form follows the naming of chemical elements, like its siblings
Limesium (the watched frontier, where the inbound
crossings are recorded), Legatium (the envoy, whose
outbound calls are recorded) and Tabellarium
(the letter-carrier, who ships the log events). All are published under the eu.inqudium
group, the fictional periodic table of Inqudium.
| Module | Role | Root package |
|---|---|---|
veredium-core | the stack-neutral core both clients share: mesh timeout ladder, breaker verdicts, Resilience4j wiring | eu.inqudium.veredium.core |
veredium-restclient | the blocking client: Spring RestClient over a selectable HTTP engine (default Apache HttpClient 5; ADR-0004), mesh timeout ladder, Resilience4j | eu.inqudium.veredium.restclient |
veredium-webclient | the reactive client: Spring WebClient over a selectable HTTP engine (default Reactor Netty; ADR-0004), mesh timeout ladder, Resilience4j | eu.inqudium.veredium.webclient |
veredium-examples shows a host using veredium: one Spring Boot application per
calling style of the two clients (blocking, asynchronous, reactive), one that runs both clients in one context, and
one that bounds a native Apache HttpClient 4 call with the core's BlockingResilienceDecorator, each run by the build's tests. It is never
published, and neither are the other two build-only modules,
veredium-test-support and veredium-coverage.
veredium-core: what both clients share, and the mesh timeout ladder.veredium-restclient: the hand-off, the ladder, the bulkheads, metrics, what differs from the reactive sibling.veredium-webclient: configuration, metrics, logging.Each Veredium release is built and tested against one Spring Boot line, one Kotlin line and one Java target; the table is the history of those lines, newest first. The Java column is the bytecode target the artifacts run on - the build itself needs JDK 24+.
| Veredium | Spring Boot | Kotlin | Java |
|---|---|---|---|
| 1.0.0 | 4.1.x | 2.4.x | 21 |
mvn verify
Maven multi-module build (group eu.inqudium), Java 21, Kotlin, Spring Boot parent.
The same source and version produce the same bytes on any machine: the root
POM sets project.build.outputTimestamp (bumped in every release commit), so
the jar and source archivers write that instant as every zip entry's
timestamp, sort the entries and normalize their permissions, and the manifests
carry no build user, build JDK or Maven version (Build-Jdk-Spec is omitted on
purpose - CI builds on JDK 25, a maintainer on whatever 24+ is installed). The
javadoc jar is rendered by Dokka but packaged by the jar plugin, because
Dokka's own javadocJar goal writes the build time and JDK into the archive.
Consequently the jars the Release workflow attaches to the GitHub release
(built on the tag by GitHub Actions, attested with SLSA provenance) and the
jars deployed to Maven Central from a local checkout of the same tag are
byte-identical. To check a build, run mvn -DskipTests package twice, or once
on the tag, and compare sha256sum veredium-core/target/veredium-core-<version>.jar
with the release asset.
Contributions are welcome — please read CONTRIBUTING.md first. The Code of Conduct applies to all project spaces, and security issues should be reported privately as described in SECURITY.md.
Licensed under the Apache License, Version 2.0.