Early developmentNot everything described here has shipped yet.

Skip to content

Scalability Targets

Date: 2026-08-01

Status: Draft

Context

To make good design and implementation decisions, we need to know how far NeoWiki should scale, so we avoid both degraded performance at scale and accidental complexity via unnecessary optimization.

Informed estimates of what real deployments look like:

Metric80% of wikis stay under99% of wikis stay under
Total Subjects100 thousand10 million
Total Schemas30100
Subjects per Page1050
Statements per Subject1550

The Great tier below matches the 99% column.

Decision

The targets are lower bounds. Scaling beyond them is nice and should be done where it is possible and cheap.

Scalability Targets

NeoWiki needs to handle these sizes, counted per graph store (so for wiki farms we combine all wikis):

MetricGreat up toAcceptable up to
Total Subjects10 million50 million
Total Schemas100 (UX-bound; performance: 500)500
Subjects per Page50250
Statements per Subject50100

Definitions:

  • Great: performs well with great UX, covers essentially all real deployments
  • Acceptable: usable, though some degradation of UX or performance is fine. To keep outliers functional

Writing Speed Targets

NeoWiki needs to meet these write speeds at any size within the scalability targets above, with all configured projections included. The duration columns follow from the target rate:

Write pathSubjects/second100 thousand Subjects1 million Subjects10 million Subjects
Import throughput (importDump.php)100+< 20 minutes< 3 hours~1 day
Projection rebuild (RebuildGraphDatabases.php)500+~3 minutes~30 minutes< 6 hours

Max latency an interactive save gains from projections: 100 ms