Skip to content

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.