LaraFly publishes one fireflyframework/larafly library containing the 30 component directories under
packages/*, each with its own tests or metadata. The 33 guides below explain their public surfaces.
Several components carry more than one guide: firefly/data answers for Data & Repositories,
Relational Data and Transactions. Laravel discovers the root library's providers, and configuration
selects optional features. A bean you declare wins over the framework default.
Two idioms deliver that outcome, and
which one you are looking at matters the moment you go reading the source. 18 of the 30 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) · [Feature Flags](modules/feature-flags.md)
Health, info and metrics over an actuator surface, OpenTelemetry-shaped tracing with W3C propagation, structured JSON/ECS/Logstash logging, a server-rendered dashboard with a bean graph and database browser, and feature flags changed at runtime.
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.