Modules¶
LaraFly publishes one fireflyframework/larafly library containing the 29 component directories under
packages/*, each with its own tests or metadata. The 32 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. 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 · Dependency Injection ·
Configuration · Application Context ·
Auto-Configuration · Validation
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 · Web Filters · OpenAPI
#[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 · Scheduling
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) · Data & Repositories ·
Relational Data · Transactions
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 · EDA Brokers · Messaging
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
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 · OAuth2 Client ·
OAuth2 Authorization Server
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 · Observability · Tracing · Logging · Admin Dashboard · Bean Graph · Data Browser 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 · Integration Testing
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.
Tooling
Installer
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.