Skip to main content

Unomi 3 is not only new features — multi-tenancy, OpenSearch, shell CRUD, tracing, and the task scheduler. It is also a step-change in how much of the platform is covered by automated tests, and how the Java surface area evolved across a decade of releases.

The charts below use release tags as waypoints: Unomi 1 = unomi-root-1.9.1, Unomi 2 = unomi-root-2.7.0, Unomi 3.0 = unomi-root-3.0.1, Unomi 3.1 = current master (work in progress after 3.0.1). Counts are physical lines of code and approximate JUnit @Test annotations from the git tree at each tag.

Unomi 3 headline metrics: 181k Java LOC, 1148 unit tests, 388 IT tests, 77 contributors

Lines of code

Production Java grew from about 45k lines in late Unomi 1 to about 70k in Unomi 2 and 71k at Unomi 3.0.1 — then jumped to about 118k on the 3.1 line. Test Java stayed modest through 3.0 (~12k) and then leapt to about 63k with the unit harness, multi-tenancy coverage, and related work.

Stacked bar chart of Java production and test lines of code across Unomi 1, 2, 3.0, and 3.1

Methodology: physical line counts over .java (and primary companion sources for totals elsewhere) from git archive at each tag; paths under target/ excluded. “Main” is everything outside src/test/ and itests/; “Tests” is those trees.

Unit and integration tests

Integration tests have been Unomi’s historical strength — growing from roughly 128 IT @Test methods in 1.9.1 to about 388 on 3.1. The dramatic change is on the unit side: from a few dozen methods through Unomi 2 to about 1,148 on 3.1, driven by the in-memory persistence harness and denser service-level coverage.

Grouped bars of unit versus integration @Test method counts across Unomi versions
  • Unit classes — 11 → 12 → 15 → 66
  • IT classes — 25 → 44 → 43 → 63
  • Test / main Java ratio — ~0.19 in 1.x, ~0.17 in 2.x, ~0.53 on 3.1

That ratio shift is intentional: Unomi 3 invests in fast feedback for rules, persistence, and tenancy while keeping the heavier IT suite for end-to-end confidence. See also the unit testing harness and clearer IT execution.

Contributors

The project has grown to 77 unique authors on the master ancestry (name-based; some people appear under multiple spellings), with about 2,769 commits through current master. Late Unomi 1 already had a broad base (~62 authors); Unomi 2 and 3 continue that trajectory rather than restarting it.

Line chart of cumulative unique contributors from Unomi 1 through 3.1

Top committers historically include Serge Huber, Thomas Draier, Abdelkader Midani, Sergiy Shyrkov, and many others who shaped incubating 1.x through the 3.x platform leap.

Downloads

Apache Infra publishes monthly CDN hit logs for Unomi on infra-reports.apache.org (hosts dlcdn.apache.org and downloads.apache.org). From July 2023 through mid-July 2026 that is about 43k software-package hits in total (binary + source archives) — that figure includes bots. Of those, about 25k (~58%) are identifiable as bots or scripts (Python Requests, scrapers, GPTBot, curl/wget, HeadlessChrome, and similar), leaving about 18k from recognizable human browsers (the purple series below). ASF’s coarse UA labels will miss some bots, so the human count is likely still a bit high.

Cumulative Unomi software package downloads: human browsers only, all packages including bots, and known bots, July 2023 through July 2026

Methodology: classify each file’s useragents labels into human browsers vs known bots/scripts (plus a small unknown bucket), then cumulate over the available months. Solid purple = human browsers only (bots excluded); solid teal = all software-package hits (bots included); dotted muted purple = identified bots/scripts only. Manuals/PDFs are excluded from all three series. Stats start mid-2023; July 2026 is partial. Vertical markers: teal 2.7.0 (Sep 2025 release), amber 3.0 (Nov 2025), and purple Site refresh (Feb 2026 website modernization). Bot detection is only as good as the coarse UA labels ASF publishes — some automated clients (or bots spoofing a normal browser) will not be flagged, so the human series is a best-effort lower-noise estimate, not a guarantee of bot-free traffic.

Where downloads come from

Country totals use the same bot filter: each file’s cca2 hits are scaled by that file’s human-browser share (ASF does not publish a full country×UA cross-tab). After filtering, the densest human-attributed package volume is Brazil (~24%), China (~18%), Russia (~17%), the United States (~12%), and Germany (~8%), with a long tail across Europe and Asia (~102 countries with attributed human traffic).

World map of human Unomi software package downloads by country with bots excluded

Map colors use a log scale. Geo still comes from CDN IP attribution, so mirrors, cloud egress, and VPNs can skew rankings even after UA filtering. Hover a country in a supporting browser for its estimate.

Website visitors

Separately from CDN package logs, ASF runs Matomo analytics for unomi.apache.org (site id 61). Across the available reporting window that is about 29k visits and 63k actions, with roughly 2.2 actions per visit, about 91 seconds average time on site, and a 67% bounce rate. Monthly series in Matomo are populated from January 2025 onward (the site record was created mid-2024; earlier months are empty in the API).

Monthly visits to unomi.apache.org from ASF Matomo, January 2025 through July 2026

Traffic is mostly desktop (~88%), arrives primarily via direct entry and search engines, and is led by visitors attributed to the United States (~45%), then China, India, and the United Kingdom. Top content is the home page, Getting Started, Documentation, Use Cases, and Download.

Top visitor countries for unomi.apache.org from ASF Matomo

Source: analytics.apache.org (public Matomo Reporting API). Matomo applies its own bot filtering, so country mix here will not match CDN download geography. Figures are visits (not unique visitors for the full range — Matomo disables that metric on long ranges).

What the numbers mean

  • 3.0 was the platform cut — LOC and IT counts look close to late 2.x; the runtime floor (Java 17, ES9, clustering) landed without ballooning the tree.
  • 3.1 is the product + quality leap — multi-tenancy and ops features arrive together with a much denser unit suite.
  • Community continuity — contributor growth is cumulative; Unomi remains a long-running ASF codebase with steady authorship.
  • Steady distribution — after excluding known bots/scripts (~58% of package hits), human browser downloads still show continuous uptake across three years of logged CDN data.
  • Site interest holds — Matomo shows a steady ~1.5–1.9k visits/month through 2025–2026, concentrated on getting-started and docs paths.

Introducing Unomi 3 Unit harness Platform foundation

← All posts