Datomic Browser

A Datomic entity browser for prod

This app is an easy way to get a generic web-based support/diagnostics UI for any production Datomic service, with the ability to extend using Clojure to add custom queries, routes, and views.

Datomic entity browser
Datomic entity browser
Figure: Datomic browser targetting an entity in the mbrainz-full dataset, a music catalogue. Here we inspect the entity for :artist/name "The Beatles" and filter for that artist's releases titled "Yellow Submarine".
Features

A service-aware entity browser for Datomic

Point it at your Datomic-backed service and explore the live data model. Navigate entities, inspect schemas, run queries, see real query stats — all through a fluent, spreadsheet-like UX.

  • Entity navigator. Click through entities like a hyperlinked graph. Follow references and reverse refs, inspect attributes, jump across entity boundaries.

  • Searchable EAVT index. Easily find the entity you're looking for and link to it!

  • Schema and metadata introspection. Surface db-stats, transaction history and other information reified in the database but typically invisible to application developers.

  • Query-stats explorer. Run your actual queries and see real stats — not a “morally equivalent” pull pattern typed into a shared console. Pull patterns are visualized.

  • Large database support, fluent virtual scroll over 50k+ records

  • Spreadsheet-like UX. Sorting, filtering, column picker on every page. Accessible to non-technical investigators.

  • "It has everything you would want"

Built on the Navigator platform capability →

10-min lightning talk

A Datomic Entity Browser for Prod — Clojure/conj 2025

Transcript with screenshots →

Connectivity

Service-intermediated PII-safety architecture

In regulated environments, restricting access to PII is essential. Datomic Browser ships as a library that embeds inside your existing Datomic-backed services. It doesn’t connect directly to a transactor or peer by URI — instead, it reuses the same connection your service already holds. That means all PII access is service-intermediated by your backend functions, giving you a central control point to defend your PII.

  • Classpath-embedded. Ships as Ring middleware — drop it into any Clojure service or microservice. No sidecar, no separate deploy.

  • No direct DB URI. The Browser never owns a connection string. Centralized PII controls in your service boundary stay in force.

  • Service-intermediated query. Securely embed as a Clojure lib with no direct Datomic URI; invoke your actual service query endpoints through your existing ring middleware (auth, etc.), with dependency injection, PII protection, and built-in slow-query supervision.

  • Bring your own auth. Authentication and authorization are delegated to whatever the enclosing service already uses.

Internal tools

Web-based, designed for internal production use

  • Your queries, your functions. Write ordinary Clojure functions — ORMs, custom query layers, whatever your stack uses. Any database backend: Datomic, XTDB, SQL, or your own data sources.

  • You control access. Database connections are dependency-injected — the agent only sees bindings you explicitly provide. You write the queries, so PII filtering and data redaction are handled in your code.

  • Enterprise-scale. Designed for huge datasets. Streaming virtual scroll over hundreds of thousands of rows. Long-running queries show elapsed time and can be cancelled mid-flight.

  • Programmable! The builtin functionality is only 300 LOC: nav_datomic.clj. Fork it! Program it! Customize it!

Applications

Platform teams, service owners, on-call crash teams, citizen dev investigators

  • Datomic platform teams. Reduce the support burden of fielding continuous slow-query tickets. Power users self-serve.

  • Service owners. Diagnose your own alerts. Understand your own data model without a two-week detour through a DB expert’s queue.

  • On-call and incident responders. Orient inside an unfamiliar service in minutes. The schema and entities are visible; you don’t need to read a README first.

  • Non-technical investigators. Fraud, compliance, and finance teams navigate service data without writing Datalog. Evidence collection becomes self-service.

Try it

Start for free

License

  • free for individual use on local dev machines
  • deploying in prod at work requires a license, contact us
  • still working out the details

Contact