The problem and the gap

Move graph analysis into the application while preserving capability.

At the ACT-IAC hackathon, Memgraph proved that graph analysis could work on an 82.6-million-edge Medicare provider network. It also introduced 100GB of dedicated RAM, Docker, Bolt, a separate failure domain, and source-available license review. Go had strong graph primitives in gonum, but not the advanced algorithm library the workflow required.

We implemented the missing algorithms from academic papers and replaced the service boundary with normal Go function calls.

Before

100GB external service

Memgraph supplied graph analysis through a separately operated database.

Execution boundary
Docker container, Bolt protocol, Cypher queries, and serialization on every call.
License
Business Source License: source-available, with additional portability and use review.
Operating impact
A separate service to monitor, patch, back up, recover, and debug.
was replaced by

After

In-process Go library

GraphWizard supplies graph analysis through direct function calls and standard gonum interfaces.

Coverage and runtime
40+ algorithms, 97.3% test coverage, and the full 82.6-million-edge workflow in approximately 90 seconds.
License
MIT-licensed source that teams can inspect, operate, and extend.
Operating impact
One process and one binary, without a graph-service network or failure boundary.
The workflow needed graph algorithms, and direct function calls supplied them without a separately operated database.

Measured result

In-process analysis retained measured performance and removed an operated service.

Integrity loads the full provider graph as a standard gonum structure. Leiden community detection, approximate betweenness centrality, and six custom fraud algorithms run end to end in approximately 90 seconds. The result removes network-query and serialization overhead as well as a separately operated service.

The operating benefit matters as much as runtime: one fewer service to monitor, patch, back up, and diagnose. The source, tests, academic references, and API documentation are public, so a buyer or technical team can inspect the evidence directly.

Algorithm inventory and implementation detailThe 40+ algorithms remain traceable to their implementation basis

GraphWizard’s custom algorithms are implemented from academic papers rather than ported from another language. The core algorithms accept standard gonum graph interfaces. Since the hackathon, the repository has added disk-backed graph and loading tools, with direct module dependencies on gonum, DuckDB, and SQLite.

  • Leiden community detection follows Traag, Waltman & van Eck (2019), succeeding Louvain with stronger community guarantees.
  • Hopcroft-Karp bipartite matching follows the 1973 paper and computes maximum-cardinality matching in O(E*sqrt(V)) time.
  • Node2Vec network embeddings follows Grover & Leskovec (2016) and uses biased random walks.
  • Approximate betweenness centrality makes centrality analysis practical for the 82.6-million-edge workflow.

The current source covers centrality, community detection, connectivity, embeddings, flow, matching, paths, similarity, structure, and traversal, alongside in-memory and disk-backed graph representations. The public repository (opens in a new window) is the live package inventory.

Design and open-source decisionsA small API surface keeps the library portable and testable

One import per domain

centrality.PageRank(g) returns a result directly. The API avoids iterator chains and builder patterns.

Consistent return types

Community methods return assignments, centrality methods return node scores, and matching methods return edge sets.

Standard gonum interfaces

Algorithms accept gonum/graph.Graph or its directed and weighted variants without wrapper types or conversion steps.

Test and research traceability

Tests cover known paper results and edge cases. Documentation cites the academic source behind each implementation.

GraphWizard began as the missing layer in Integrity, but the library is general-purpose. MIT licensing lets the Go ecosystem inspect and reuse it without taking on a database service or source-available license.

That choice follows the same right-sizing principle described in 47 Users, 47 Engineers: keep essential mission complexity and remove infrastructure that does not improve the outcome.