Architecture guide
An open-source entitlement engine that runs with your application.
Subscrio runs in your application and stores entitlement data in your database. Feature checks do not call an outside Subscrio service.
How checks run
Your app checks entitlements without calling another service.
A hosted entitlement service adds an API call between your code and the access result. Subscrio resolves features directly from your application database.
If another vendor goes down, Subscrio checks still work. Your application and database still need to be available.
A fair comparison
Embedded and hosted systems give your team different work.
The choice is whether you want to run entitlement checks yourself or depend on a hosted service. Open source lets you inspect and change the engine, but your team still operates it.
| Dimension | Subscrio embedded engine | Hosted entitlement platform |
|---|---|---|
| How checks run | Runs in the application against its database or cache. | Often uses an external API, a synchronized SDK cache, or both. |
| Where data lives | Your PostgreSQL database, or SQL Server with .NET. | The vendor's service, sometimes with a local replica or cache. |
| What can stop a check | Your application, database, deployment, or cache. | Your application, the vendor's service, or the network between them, unless a local cache handles the outage. |
| Operations | You own versions, migrations, backups, and observability. | The provider owns its service; you own integration and fallback behavior. |
| Commercial scope | Focused on features, values, limits, assignments, and overrides. | May include pricing, metering, experimentation, and revenue workflows. |
| Cost model | MIT-licensed engine. Optional admin is a one-time purchase. | Usually a recurring service fee based on the vendor's pricing model. |
What your team runs
Your team maintains the database, migrations, and library version.
Because the engine runs in your application, your team installs the schema, applies migrations, handles caching, monitors query performance, and tests what happens when a dependency fails.
- Database healthEntitlement checks depend on the database or cache your application uses.
- Releases and migrationsYour deployment process updates the library and applies schema changes.
- Billing and contract updatesYour code turns billing or contract events into subscription assignments, dates, and overrides.
Pros and tradeoffs
Why teams keep entitlement checks out of another vendor's service.
A hosted vendor can be convenient, but it also adds another service, network dependency, and pricing model to customer access. An embedded engine removes that dependency. In return, your team maintains the database, migrations, and integration code.
Advantages
- Feature checks still work when an entitlement vendor or the connection to it is unavailable.
- Entitlement data stays in the database, backups, and audit tools your team already uses.
- Changing billing providers does not require moving product-access rules to another entitlement platform.
- Your developers can inspect the engine and the exact data behind an access result.
- The MIT-licensed engine has no recurring entitlement-platform fee.
What your team maintains
- Keep the database or cache available and monitor entitlement-query performance.
- Apply library updates and schema migrations through your deployment process.
- Map billing and contract events to subscriptions, dates, and customer overrides.
- Test retries, missed events, caching, and failure behavior.
- Build management screens or add the self-hosted Web Admin.
See the feature entitlement model, then choose the .NET or TypeScript quickstart.
Common questions
Questions about embedded entitlement engines
What is an embedded entitlement engine?
An embedded entitlement engine runs as a library with your application and resolves product access from data in your database. It does not require a separate hosted entitlement service.
Does Subscrio call an external entitlement service?
No. Entitlement resolution does not call a Subscrio-hosted service. Your application may still use its own database or cache according to its architecture.
What happens if a billing provider or outside service is unavailable?
Existing entitlement data remains available from your database. New billing changes wait until event delivery or reconciliation resumes, according to the failure policy your application defines.
Who operates the database and migrations?
Your team does. TypeScript uses PostgreSQL. The .NET package supports PostgreSQL and SQL Server. Subscrio provides schema installation and migrations, but the database stays with the infrastructure your application already uses.
Is an embedded engine always better than a hosted platform?
No. A hosted platform may fit better if you want someone else to run the service or need billing, metering, and pricing tools together.
Can Subscrio work with Stripe or another billing provider?
Yes. Billing can stay in Stripe, Paddle, an internal commerce system, or another provider. Your integration maps verified commercial events to Subscrio assignments and subscriptions.
Next step
Inspect the engine before adding it to your application.
Review the MIT-licensed source, then follow the framework setup for your application and database.