Decisions
One decision and the reasoning behind it. Narrower than a proposal: a decision settles a single question rather than proposing how a whole area should work.
Accepted
5 · frozen
ADR-0001
Never replace the active tenant
Within each unit of work, Sprout sets up everything that depends on the
tenant for the active tenant of each
tenancy, such as which database records can be seen...
ADR-0002
Never rewrite configuration at runtime
A tenant can have its own
per-tenant configuration, such as its own database connection, mailer or
storage disk, read from wherever the application keeps it, su...
ADR-0003
Keep extension points stable within a major version
Applications and third-party packages extend Sprout. They add new ways of identifying a
tenant, loading tenants, separating tenant data, making services tenant-...
ADR-0004
Upgrade from v1 with a guide and Rector rules
Version 2 of Sprout is being rebuilt from scratch. Breaking changes from version 1 are allowed, as long as there is
a way for applications using version 1 to up...
ADR-0005
Provide mechanisms, not policy
Applications that serve many tenants differ in what a tenant is and how one is managed. A
tenant can be, for example, an organisation, a store or a team, stored...