Compliance portal scaling
Compliance portal scaling and launch checklist
A compliance portal stays fast by paginating every list, indexing the main questions, and deferring heavy work until a measured trigger fires. At launch, apply 6 rules, watch 5 signals and hold the performance targets below.
Last checked
Rules to apply at launch
- Pagination: Value, document and audit lists use keyset pagination on an indexed (sort_key, id) cursor, page size 50 capped at 200.
- Caching: The dashboard reads consolidation rollup tables keyed by (group, period, version); rollups are rebuilt on lock, never computed per page view.
- Queues: Extraction and consolidation run as Postgres jobs claimed with SKIP LOCKED by capped workers.
- Idempotency: Uploads are idempotent by content hash, imports by file hash, approvals and locks by compare-and-set on status.
- Rate limits: Per-entity and per-user limits on uploads, extraction calls and exports; exceeded limits return 429 and spend nothing.
- Data growth: values and audit_log grow monotonically: partition by period and month past the stated thresholds; archive locked periods to cold storage.
Performance targets
| What to measure | Target |
|---|---|
| Dashboard | p95 < 500 ms for a group of 200 entities, one rollup read |
| Value approval | p99 < 150 ms, one compare-and-set plus one audit insert |
| Consolidation run | full group period in < 60 s for 200 entities x 50 metrics |
What to watch
- Metric extraction acceptance rate: share of proposed fields accepted unchanged, by document type.
- Metric review queue age s: age of the oldest open review item per entity.
- Log ledger event log: value id, transition, actor type, version; no document text.
- Slo reporting availability: 99.5% of dashboard and approval calls succeed during the reporting window.
- Alert locked period write attempt: any write attempt against a locked period pages the owner.
Recurring work
- consolidate_group: runs on period lock and nightly. Guard: recomputes rollups from approved values only, idempotent by (group, period, version).
- extract_fields: runs queue on document upload. Guard: page and size caps, per-entity daily AI budget that fails closed, results stored as drafts only.
Add when the numbers say so
- Read replicas: Serve dashboards and exports from a read replica once primary CPU or dashboard p95 crosses the trigger.
Deferred until it is needed
| Deferred | Adopt it when |
|---|---|
| External assurance workspace | first customer requests assured reports. |
| Scanned-document OCR | scanned bills exceed 15% of uploads. |
| Read replicas for dashboards | primary CPU > 60% sustained or dashboard p95 > 800 ms. |
On Forge64
Forge64 matches your description to one of 25 reference architectures, writes the plan and data model into the project, generates the app, and runs a quality gate over the code before you see it. Each app gets its own Postgres database and sign-in with no per-user fee. Hosting on Forge Cloud and Forge Payments are rolling out.
Every metered resource on Forge64 has a hard cap, so a traffic spike stops at your limit instead of becoming a surprise bill. This is a reference design for the category, not a promise that every item is generated today. Built-ins such as background jobs, file uploads and search are rolling out; email sent from your app is coming soon, so anything here that needs it is something you add yourself for now.
FAQ
- When should I worry about scale for a compliance portal?
- Not before a measured trigger fires. For example, for "External assurance workspace": first customer requests assured reports.
- What performance targets should a compliance portal aim for?
- Dashboard: p95 < 500 ms for a group of 200 entities, one rollup read. Value approval: p99 < 150 ms, one compare-and-set plus one audit insert. Consolidation run: full group period in < 60 s for 200 entities x 50 metrics.
- Does Forge64 cap my usage costs?
- Yes. Every metered resource has a hard cap, and paid plans add an overage spend cap that you set.
Build your app with Forge64
One prompt to a running app with auth, database, hosting and payments. Start free, no credit card required.
Start building for free