Skip to content

sprout-laravel/spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

This repository contains the technical specification, architecture documentation, and design decisions for Sprout.

Contents

Technical documentation describing how Sprout works internally. These are design specification documents that explain concepts, design rationale, and how parts of the system relate to each other.

Document Description
Overview High-level architecture and design principles
Tenancy The container for tenant state
Tenant Providers Loading tenants from storage
Identity Resolvers Extracting tenant identity from requests
Resolution Hooks When and how tenant resolution occurs
Tenancy Lifecycle Events and listeners during tenant activation
Service Overrides Making Laravel services tenant-aware
Eloquent Integration Tenant-aware models and automatic scoping
Managers & Factories Driver-based factory pattern for extensibility
Exceptions Error handling and exception hierarchy

Extension Packages

The documents above cover Sprout's core architecture. The following extension packages add additional capabilities:

  • Bud — Tenant-specific configuration
  • Seedling — Multi-database support (in development)
  • Canopy — Domain-based identification (in development)

Request for Comments documents for proposing significant changes or new features. RFCs provide a structured way to discuss and evaluate proposals before implementation.

Architecture Decision Records document significant technical decisions, their context, and rationale. ADRs help maintain a historical record of why things are built the way they are.

Contributing

If you'd like to propose a change to Sprout's architecture or design, please:

  1. For new features or significant changes, open an RFC
  2. For implementation decisions within an accepted RFC, document them as ADRs
  3. For clarifications or corrections to existing documentation, open a pull request

See CONTRIBUTING.md for general contribution guidelines.

Versioning

This specification tracks the development of Sprout v2. Documentation for v1 can be found in the main documentation.

About

The technical specification for the Sprout project

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors