Nextpoint Glossary¶
Canonical terminology for the Nextpoint platform. When terms conflict between UI, code, and conversation, this glossary is authoritative.
Product Terminology¶
These pairs refer to the same concept. The correct term depends on context.
| UI / Product Term | Code / Backend Term | Definition | When to Use Which |
|---|---|---|---|
| Import | Batch | A set of documents submitted for processing. Users "start an import"; the backend creates a Batch record. |
Use "import" in UI copy, user docs, and product discussions. Use "batch" in code, architecture docs, and event names (BatchProcessingEvent, batch_id). |
| Exchange | Wire | Transfer of documents between cases. The product name is "Exchange"; the Rails models are OutgoingWire / IncomingWire. Configured via $global_config[:wire_product_name]. |
Use "exchange" in product/UI contexts. Use "wire" when referencing Rails code. The NGE module is documentexchanger. |
Product Suites¶
Nextpoint has two distinct product suites. They are separate domains, not a migration path.
| Suite | Domain | Components | Architecture |
|---|---|---|---|
| Discovery | eDiscovery | Document processing: import, extraction, upload, export, exchange, search, review/coding | NGE modularized: documentextractor, documentloader, documentuploader, documentexporter, documentexchanger, documentpageservice, unzipservice |
| Litigation | Litigation | Video (transcode, stitch, sync), Depositions (transcripts, parsing), Treatments (presentation images) | Entirely Legacy Rails. Separate domain — NOT unfinished migration work. |
Architecture Terminology¶
nge_enabled?¶
Definition: A permanent, immutable case attribute. A case is created as either NGE or Legacy and stays that way forever.
NOT: A feature flag, migration toggle, or gradual adoption switch.
Impact: The entire processing pipeline, UI rendering, event tracking, and data storage differ based on this flag. It cannot be hot-swapped. See nge-legacy-divergence-map for 85+ code branch points.
NGE Pipeline Entry Point¶
Correct: documentextractor is the NGE import pipeline entry point, called via ProcessorApi.import() → POST /import.
Incorrect: documentloader is NOT the entry point. It is a downstream SNS subscriber.
Pipeline Flow¶
Rails → ProcessorApi.import()
│
▼
documentextractor (entry point — content extraction)
│
▼ SNS events (DocumentExtracted, etc.)
│
├──→ documentloader (DB writes — metadata, exhibits, pages)
│ │
│ ▼ SNS events
│
├──→ documentuploader (PDF processing via Nutrient/PSPDFKit)
│ │
│ ▼ SNS events
│
└──→ PSM (Pipeline Status Monitor — captures ALL events via Firehose)
│
▼ Parquet → Athena
│
▼ NgeCaseTrackerJob (Rails) polls Athena → MySQL → BatchCompletionJob
PSM (Pipeline Status Monitor)¶
Subscribes to ALL SNS events from ALL NGE modules via Kinesis Firehose. Stores events as Parquet files queryable via Athena. This is how Rails knows when NGE processing is complete.
Document Handling Divergence¶
This single architectural difference drives the majority of NGE/Legacy code divergences:
| Aspect | Legacy | NGE |
|---|---|---|
| Storage | Individual page images (TIFF/PNG) on S3 | PDF-only in Nutrient (PSPDFKit) |
| Annotations | Bates numbers and confidentiality stamps baked into image files | Overlay layers rendered on-demand by Nutrient |
| Viewer | S3 image tiles rendered in browser | Nutrient JavaScript viewer |
| Export | Re-assemble from page images | Render from PDF + overlays |
| Bates validation | Against DB page counts | Against Nutrient page counts |
This divergence is the root cause of the 85+ branch points documented in the divergence map.
Terminology Rules¶
- Always clarify context when using import/batch, wire/exchange, or NGE/Legacy — the correct term depends on audience (UI vs code vs architecture).
- Never describe
nge_enabled?as a migration flag — it is permanent. - Never describe Litigation as "not yet migrated" — it is a separate product domain.
- documentextractor is the entry point — not documentloader.
- Frame document handling as PDF+overlays (NGE) vs page images (Legacy) — this single distinction explains most divergences.
Ask questions about Nextpoint architecture, patterns, rules, or any module. Powered by Claude Opus 4.6.