Feature Toggles

Architecture Principle · 05 of 9

Feature Toggles

Toggles control every feature independently, per company and per role. Roll out new functionality to one mill before all five. Disable a problematic feature in 10 seconds without a code deploy.

What this means

In practice.

Activate new modules or features per company without code deploys

Gradual rollout: enable a feature for 10% of users, watch metrics, then ramp up

Emergency shutoff: kill a bad feature in seconds without rollback

Per-role and per-company targeting — fine-grained control

How it works

Under the hood.

01

Toggle registry

Every feature gets a toggle name. Code checks 'if (toggle.enabled(name, context))' before executing.

02

Admin UI

Toggle state managed in Administration module. Changes audit-logged.

03

Context evaluation

Toggle decisions evaluated per-request with user + company + role context. Decisions cached for performance.

04

Kill switch

Critical toggles can be flipped globally in <10s without deploy. For dead-code scenarios.

Visual

Small (1 plant)1 nodes
Medium (3 plants)3 nodes
Large (8 plants)8 nodes
Group (15+ plants)15 nodes

Same architecture, same code, same data model. Just more nodes.

Real-World Example

Real-world: Beta feature rolled out safely

Before

New AI-assisted quotation pricing feature ready for testing. Risky to enable for all customers.

After

Enabled for 2 pilot mills via toggle. Monitored for 2 weeks. No issues. Ramped to 100% over the next month. One mill that had issues got toggle disabled in 30 seconds while we investigated.

Paper mill

Ready to modernize your mill?

See Papyrus BPApp
in your mill.

Book a personalized demo. We'll walk through every module relevant to your operation — from Deckle optimization to GSTR-3B compliance.

CallRequest Demo