LaraFly is one monorepo of 29 installable Composer packages under packages/* — 28 libraries plus the
firefly/firefly runtime metapackage — each with its own test suite, and the 32 guides below are the long
form of what they do. Several packages carry more than one guide, because the surfaces they ship are read
separately: firefly/data alone answers for Data & Repositories, Relational Data and Transactions.
Installing a package is the whole wiring step: its service provider is auto-discovered from the package's own
composer.json, everything that provider registers is a default, and a bean you declare yourself wins over
that default — nothing here asks you to register a provider by hand. Two idioms deliver that outcome, and
which one you are looking at matters the moment you go reading the source. 17 of the 29 packages carry a
#[Configuration] class whose #[Bean] methods sit behind #[ConditionalOnMissingBean], so a bean of yours
makes the framework's back off silently — packages/data/src/DataAutoConfiguration.php is the model. The
other 12 have no such class to go looking for; firefly/web, the one nearly every reader installs, guards
each binding in WebServiceProvider::register() with a bound() check instead, first-one-wins by hand.
Foundation
[Error Handling](modules/error-handling.md) · [Dependency Injection](modules/dependency-injection.md) ·
[Configuration](modules/configuration.md) · [Application Context](modules/context.md) ·
[Auto-Configuration](modules/starters.md) · [Validation](modules/validation.md)
Stereotypes and the compiled component scan, profiles and `#[ConfigProperties]` binding, the phased boot, `#[Configuration]`/`#[Bean]` starters with conditions, constraint attributes behind `#[Valid]`, and the RFC-7807 error model everything else throws into.
Web & API
[Web Layer](modules/web.md) · [Web Filters](modules/web-filters.md) · [OpenAPI](modules/openapi.md)
`#[RestController]` routing off a compiled `RouteManifest`, the ordered `WebFilter` chain on Laravel's middleware stack, and an OpenAPI 3.1 document generated from those same manifests.
Resilience & Scheduling
[Resilience](modules/resilience.md) · [Scheduling](modules/scheduling.md)
Retry, circuit breaker, bulkhead, time limiter, rate limiter and fallback, each a `call(callable)` object built from `firefly.resilience.*`; `#[Scheduled]` methods held by a cache or Postgres-advisory distributed lock.
Data & Domain
[Domain (DDD)](modules/domain.md) · [Data & Repositories](modules/data.md) ·
[Relational Data](modules/data-relational.md) · [Transactions](modules/transactional.md)
Spring-Data-shaped repositories — derived queries, query by example, `#[Modifying]`/`#[Projection]`/`#[Lock]`/`#[EntityGraph]`, `Page`/`Slice`, the `DataAccessException` family — over Eloquent, with `#[Transactional]` demarcating the boundary.
Eventing & Messaging
[EDA](modules/eda.md) · [EDA Brokers](modules/eda-brokers.md) · [Messaging](modules/messaging.md)
One `EventPublisher` port with in-memory, queue, RabbitMQ, Postgres and Kafka adapters, a genuine same-transaction outbox, and the lower-level raw-bytes broker layer beneath it.
CQRS
[Command/Query](modules/cqrs.md)
A `CommandBus`/`QueryBus` mediator with correlation, validation, authorization, caching and metrics in the pipeline, and a bridge that republishes committed domain events onto the event bus.
Security
[Security](modules/security.md) · [OAuth2 Client](modules/security-oauth2-client.md) ·
[OAuth2 Authorization Server](modules/security-oauth2-server.md)
A Spring-Security-6-shaped principal model: session-persisted context, form login, HTTP Basic, JWT, deny-by-default `HttpSecurity` URL rules, method security on any stereotyped bean, and both halves of OAuth2 — signing in with a provider, and being one.
Operations
[Actuator](modules/actuator.md) · [Observability](modules/observability.md) ·
[Tracing](modules/tracing.md) · [Logging](modules/logging.md) · [Admin Dashboard](modules/admin.md) ·
[Bean Graph](modules/bean-graph.md) · [Data Browser](modules/data-browser.md)
Health, info and metrics over an actuator surface, OpenTelemetry-shaped tracing with W3C propagation, structured JSON/ECS/Logstash logging, and a server-rendered dashboard with a drawn bean graph and a database browser.
Testing
[Testing](modules/testing.md) · [Integration Testing](modules/integration-testing.md)
A boot harness, recording doubles for every port, and web and data test slices; the real-Chromium suite that drives the skeleton's own pages is the framework's own, not something `firefly/testing` ships — see [Contributing](contributing.md).
Tooling
[Installer](modules/installer.md)
The global `firefly new` installer and the `firefly/skeleton` create-project template.
Every configuration key the framework reads is written out once, with its default and the reason it has
that default, in the skeleton's config/firefly.php. That file is the reference, and it is held to being
one: a key the framework reads that the reference does not document is a failing test.