Skip to content

tabellarium 1.0.0

Latest

Choose a tag to compare

@dirkjink dirkjink released this 29 Aug 10:13
· 29 commits to main since this release

First stable release of tabellarium — a resilient Logback appender that ships structured log events to Apache Kafka. Named after the Roman letter-carrier, it never blocks the sender.

Highlights

  • The sender is never made to wait: the logging thread only routes, encodes and enriches; producer.send runs on a bounded per-topic-class send worker (O(1) hand-off, overflow diverts visibly instead of blocking).
  • Quality of service per log stream: four topic classes (AUDIT, FUNCTIONAL, TECHNICAL, PERFORMANCE) with per-class producers, mandatory producer-side overrides (acks=all, idempotence for AUDIT — reported at startup when they overrule operator values), circuit breakers and half-open probe throttling per class.
  • Losses are visible, never silent: an optional fallback appender behind its own bounded queue; every diversion and drop is counted. Delivery is deliberately best-effort transport — see Delivery guarantees for the exact scope of what the topic classes do and do not promise.
  • Opt-in observability: Micrometer counters/timers/gauges, per-producer Kafka client metrics, appender-tagged circuit-breaker meters, Grafana dashboards; nothing until you bind a registry.
  • A deliberately small public API: the operator surface only (ADR-0002) — KafkaAppender + XML configuration types, TopicClass, and the optional Spring metrics binding.
  • Evidence, not claims: 253 offline tests plus a real-broker Testcontainers stage in CI, 91% instruction coverage, a generated test-evidence page, measured performance verdicts in a committed benchmark report, and a full analysis audit trail under docs/assessment/.

Documentation

Configuration guide, metrics overview, dashboards and the API reference: https://inqudium.github.io/tabellarium/

Full details in the CHANGELOG.

Artifacts

  • tabellarium-1.0.0.jar — the library (Java 21, Kotlin 2.4.10)
  • bom.json — CycloneDX SBOM of the resolved runtime dependency graph

🤖 Generated with Claude Code

https://claude.ai/code/session_01AFZ2KxYGjhzAhUxq1z3YQY