PDR-0001: Open-core split — public MIT SDK, private commercial Pro
PDR-0001: Open-core split — public MIT SDK, private commercial Pro
Section titled “PDR-0001: Open-core split — public MIT SDK, private commercial Pro”Date: 2026-06-22 | Status: accepted Decided by: Harol (solo operator / product owner)
This PDR ratifies a decision already in force across the codebase and referenced by ADR-0001 and ADR-0022. It is recorded now so the product rationale has a durable, linkable home separate from the technical ADRs that implement it.
Decision
Section titled “Decision”Verbara is an open-core product. The foundation (Verbara.Sdk) is public and
MIT-licensed; the commercial value-add (Verbara.Sdk.Pro) and the platform that
monetizes it stay private and closed-source. The dependency boundary
Sdk (MIT) → Sdk.Pro (private) → Platform IS the open-core line and must not be crossed:
no Pro/closed concepts leak into the public SDK, and Pro IP never ships as decompilable IL.
- Market: A permissive, MIT-licensed SDK lowers adoption friction and builds an ecosystem/funnel around the Asterisk integration layer, while the differentiated Pro features (event sourcing, predictive dialer, agent assist, analytics, clustering, multi-tenant, licensing) remain the commercial moat.
- Cost: The split costs ongoing discipline (two release trains, a guarded boundary) but avoids the far larger cost of either giving away the commercial IP or making the whole stack closed and unadoptable.
- Complexity: Enforced technically — the closed Pro IP must ship as Native AOT so it is never distributed as decompilable IL (“la imagen siempre debe ser AOT”). This is what makes ADR-0022 (AOT-only shipping, Dapper ban) a hard, non-negotiable constraint rather than a preference.
Alternatives considered
Section titled “Alternatives considered”- Fully open-source (all MIT): maximizes adoption, eliminates the commercial moat — rejected; there is no revenue model.
- Fully closed-source: protects all IP but kills the adoption funnel and community trust around the integration layer — rejected.
- Source-available license for Pro (e.g. BSL): keeps source visible with usage restrictions, but still exposes the IP and adds license-compliance burden — rejected in favor of closed + AOT, which is simpler to enforce at this scale.
Revisit when
Section titled “Revisit when”- A funding/ownership change alters the monetization model, or
- The open SDK funnel demonstrably fails to convert (reconsider how much value sits above vs. below the open-core line), or
- A specific Pro capability would create far more ecosystem value as open than as commercial (move that one capability down across the line via its own PDR).