An ecosystem. A shared way to build.

Enterprise patterns.
Your language.

A shared way to build enterprise applications. Native frameworks, familiar patterns, and connected tools—so every team can build in the language they love.

Shared patterns. Independent implementations.
A small spark. A shared vision.
Find your framework

A shared approach.
A home in your language.

Choose the implementation that fits your team. Explore its programming model, working examples, and learning resources.

Shared architectural ideas, independent implementations. Each framework page explains its own capabilities and available integrations.

Architecture with intention

Less plumbing. More possibility.

Three clear responsibilities. One connected application.
Explore how Firefly keeps your business at the center.

Protect the rules. Keep the freedom.

Model your business independently of the systems around it. The domain owns its behavior and invariants, so a new database or delivery channel does not have to reshape your business logic.

Business behavior stays at the center.
A common language for complex systems

Patterns your whole team
can reason about.

Carry familiar architectural ideas from one service to the next. Explore the patterns across the ecosystem, then choose the capabilities available in your framework.

Commands & queries

Separate requests that change state from requests that read it. Give each use case a focused handler.

Command Query Responsibility Segregation

Events

Express what happened in your domain. Let other parts of the system react through explicit event contracts.

Domain events & event-driven architecture

Workflows

Describe a process as connected steps, with explicit dependencies, outcomes, and recovery paths.

Process orchestration

Sagas

Coordinate local operations across services. Compensate completed steps when a later operation fails.

Distributed coordination & compensation

TCC

Reserve resources in a try phase, then confirm the operation or cancel the reservation.

Try · Confirm · Cancel

Ports & adapters

Describe what your application needs through interfaces. Connect infrastructure providers at the boundary.

Hexagonal architecture
Learn by building

Read the ideas.
Build the application.

Follow a real project from its first endpoint to its application architecture. Explore the books, companion code, and available editions.

Published editions and source manuscripts are linked separately. Downloadable books include English and Spanish editions; framework pages link to the exact available release.

The bigger picture

More than a framework.
A connected ecosystem.

Start with an application framework. Add the capabilities your system needs. Bring in AI, data science, and developer tools when the work calls for them.

Building blocks for the bigger challenges.

Explore the Java modules

Individual projects evolve independently. Follow their repositories for releases and implementation status.

Browse every repository
Explore the projects

Many building blocks.
One shared direction.

Java is composed of modular repositories. Each other language has its own framework workspace. Find the projects that fit your application.

70 projects · 10 categories
Python, PHP, Rust and .NET4
Java foundations and application services17

Compose a Java application from shared build tools, service starters, web and data modules, and operational foundations.

fireflyframework-backoffice

Provides application context and resource controller abstractions for Java backoffice services and internal portals.

fireflyframework-bom

Aligns Java module dependency versions through a single Maven bill of materials.

fireflyframework-client

Connects Java services to remote systems through a shared client for HTTP APIs, SOAP, gRPC, GraphQL, and WebSocket.

fireflyframework-config-server

Serves shared and service-specific configuration to Java applications through Spring Cloud Config.

fireflyframework-kernel

Defines shared abstractions and a common exception hierarchy for Java framework modules.

fireflyframework-observability

Connects Java applications to metrics, distributed tracing, health checks, and structured logging.

fireflyframework-parent

Shares Maven build settings, dependency versions, and plugin configuration across the Java framework.

fireflyframework-plugins

Adds extension points and manages plugin discovery, dependencies, and lifecycle in Java applications.

fireflyframework-r2dbc

Provides reactive PostgreSQL data access with filtering and pagination for Java applications.

fireflyframework-rule-engine

Defines business rules in YAML and evaluates them with caching and audit trails.

fireflyframework-starter-application

Assembles Java modules for application services that coordinate business processes, request context, security, and plugins.

fireflyframework-starter-core

Assembles Java infrastructure modules for service connections, discovery, messaging, health checks, and resilience.

fireflyframework-starter-data

Assembles Java modules for processing data, coordinating jobs, enriching records, and handling commands and events.

fireflyframework-starter-domain

Assembles Java modules for business logic, command and query handling, distributed transactions, and events.

fireflyframework-utils

Provides shared Java utilities for template rendering, document generation, and filtering annotations.

fireflyframework-validators

Checks financial and business data such as bank identifiers, currencies, amounts, phone numbers, and tax identifiers.

fireflyframework-web

Adds consistent error responses, request idempotency, sensitive data masking, and API documentation to Spring WebFlux services.

Events, workflows and distributed transactions7
Security and identity20

Define access rules, connect identity providers, and integrate authorization and secrets services.

fireflyframework-security-adapter-cerbos

Delegates application authorization decisions to Cerbos through the security policy interface.

fireflyframework-security-adapter-opa

Delegates application authorization decisions to Open Policy Agent through the security policy interface.

fireflyframework-security-adapter-openfga

Connects the security relationship interface to OpenFGA for authorization based on relationships between users and resources.

fireflyframework-security-adapter-r2dbc

Stores token revocation records in PostgreSQL for the Java security modules.

fireflyframework-security-adapter-vault

Retrieves application secrets from HashiCorp Vault through the Java security secrets interface.

fireflyframework-security-api

Defines the security domain model and application-facing contracts used by the Java security modules.

fireflyframework-security-authorization-server

Provides an OAuth 2.0 and OpenID Connect authorization server using Spring Authorization Server.

fireflyframework-security-bff

Handles browser sign-in on the server and keeps user tokens in server sessions behind a browser cookie.

fireflyframework-security-core

Evaluates authorization rules and maps identities to permissions behind the Java security interfaces.

fireflyframework-security-idp

Defines shared identity interfaces so Java applications can use different user and authentication providers.

fireflyframework-security-idp-aws-cognito

Connects the Java identity interfaces to Amazon Cognito user pools.

fireflyframework-security-idp-azure-ad

Connects the Java identity interfaces to Microsoft Entra ID and Azure AD B2C.

fireflyframework-security-idp-internal-db

Provides a database-backed identity service with user storage, password hashing, tokens, and TOTP setup and verification helpers.

fireflyframework-security-idp-keycloak

Connects the Java identity interfaces to Keycloak through its administration API.

fireflyframework-security-method-policy

Checks authorization rules when annotated Java service methods are called.

fireflyframework-security-oauth2-client

Manages OAuth 2.0 client authorization, token refresh, and token relay for reactive Java applications.

fireflyframework-security-resource-server

Validates access tokens and maps their claims to permissions for protected Java APIs.

fireflyframework-security-spi

Defines integration contracts for token validation, policy decisions, key management, auditing, and token revocation.

fireflyframework-security-test

Provides sample principals and a configurable policy decision substitute for Java security tests.

fireflyframework-security-webflux

Connects the Java security model to Spring WebFlux authentication, security context, and request policy enforcement.

Documents and storage3
Caching5
Email, text messages and push notifications5
Incoming and outgoing webhooks2
AI agents and data science3
Developer tools and learning4

Java integration modules are specific to the Java framework. Check each language’s documentation for its available capabilities.

Open source. Open possibilities.

Your next big idea
starts with a small spark.

Find your language. Explore the code. Make something that matters.