Module catalog¶
The customer onboarding tutorial starts with submitting and reading an application. Use this catalog when adding a capability to that service: durable storage, reviewer access, provider calls, notifications, or coordinated work. Each addition needs its own configuration and application policy.
Each guide explains the component's role, a practical entry path, configuration, public APIs, and its implementation/tests. See getting started, installation, and the architecture guide for the wider service design.
Security and identity¶
Protect applicant records and reviewer actions. Follow the security journey to choose a route or method boundary before adding provider adapters.
| Component | Purpose | Role |
|---|---|---|
| Security Cerbos Adapter | Delegate PolicyDecisionPort decisions to the Cerbos CheckResources API. | provider adapter |
| Security OPA Adapter | Delegate policy decisions to Open Policy Agent through the security SPI. | provider adapter |
| Security OpenFGA Adapter | Check relationship authorization through an OpenFGA store. | provider adapter |
| Security R2DBC Adapter | Persist token revocation records through a relational R2DBC adapter. | provider adapter |
| Security Vault Adapter | Read a configured field from HashiCorp Vault KV v2 through SecretsPort. | provider adapter |
| Security API | Define product-neutral principals, authorization decisions, driving use cases, and the Secure annotation. | shared contracts |
| Security Authorization Server | Configure a servlet OAuth2/OIDC authorization server with JWKS backed by KeyManagementPort. | security integration |
| Security BFF | Handle browser OAuth2 login with server-side tokens, an opaque host cookie, CSRF protection, relay, and logout. | security integration |
| Security Core | Evaluate the framework security model with authority mapping, policy decisions, introspection caching, and principal projection. | security integration |
| Identity Provider | Define identity-provider contracts and common authentication/user/group management services. | security integration |
| IDP - AWS Cognito Implementation | Implement the identity-provider adapter using Amazon Cognito user pools. | provider adapter |
| IDP - Azure AD Implementation | Implement identity-provider operations for Microsoft Entra ID/Azure AD and B2C. | provider adapter |
| IDP - Internal Database Implementation | Implement identity-provider authentication and user/group persistence with an internal reactive database. | provider adapter |
| IDP Keycloak | Implement identity-provider operations against Keycloak. | provider adapter |
| Security Method Policy | Enable reactive method authorization through Secure and the core authorization evaluator. | security integration |
| Security OAuth2 Client | Provide reactive OAuth2/OIDC authorized-client support and WebClient token relay. | security integration |
| Security Resource Server | Validate signed JWT bearer tokens in a reactive resource server with hardened default security behavior. | security integration |
| Security SPI | Define driven ports for policy, relationships, revocation, keys, secrets, and other external security services. | shared contracts |
| Security Test | Create test principals and deterministic policy decisions for security tests. | test fixtures |
| Security WebFlux Binding | Bind the framework principal and authorization policy to reactive Spring Security/WebFlux. | security integration |
Business operations¶
Submit applications and query their status through typed handlers. Follow the business-operations journey from the runnable HTTP service to rule evaluation when needed.
| Component | Purpose | Role |
|---|---|---|
| CQRS | Separate commands and queries with reactive dispatch, execution context, validation, and authorization hooks. | application library |
| Rule Engine Core | Parse YAML rule DSL into an AST, evaluate conditions/actions, and provide rule, constant, batch, and audit services. | application library |
| Rule Engine Interfaces | Share request/response DTOs, rule definitions, validation results, and value/result enums for the rule engine. | shared contracts |
| Rule Engine Models | Persist rule definitions, constants, and audit trails with reactive repositories. | persistence models |
| Rule Engine SDK | Generate a reactive Java WebClient SDK for the rule engine HTTP API. | generated API client |
| Rule Engine Web | Expose HTTP APIs for evaluation, stored rule definitions, constants, batch operations, validation, and audit trails. | runnable service |
| Rule Engine | Group the YAML rule evaluator, public DTOs, persistence models, HTTP service, and generated SDK. | component family |
External services¶
Connect an identity check, confirmation message, or partner callback. Follow the external-services journey to choose one integration and define its failure policy.
| Component | Purpose | Role |
|---|---|---|
| Agentic Bridge Autoconfigure | Wire the agentic client/bridge, configured queue publishers, health indicator, and metrics into Spring Boot. | Spring wiring |
| Agentic Bridge Core | Invoke remote agents over REST, SSE, or WebSocket and publish queue invocations through a typed Java client. | application library |
| Agentic Bridge Samples | Run example HTTP endpoints for catalog lookup, agent invocation, streaming, conversation, and queue publishing. | example application |
| Agentic Bridge Starter | Bundle the agentic core, auto-configuration, WebFlux, actuator, and reactive resilience dependencies. | dependency starter |
| Agentic Bridge | Group the Java client, Spring wiring, starter, and sample for remote agent integration. | component family |
| Callback Management Platform - Core | Route subscribed events and dispatch outbound HTTP callbacks with signing, retries, circuit breaking, and execution tracking. | application library |
| Callback Management Platform - Interfaces | Share callback configuration, subscription, domain, and execution DTOs and status enums. | shared contracts |
| Callback Management Platform - Models | Persist callback configurations, authorized domains, event subscriptions, and execution records with reactive repositories. | persistence models |
| Callback Management Platform - SDK | Generate a reactive Java WebClient SDK from the callback platform OpenAPI specification. | generated API client |
| Callback Management Platform - Web | Expose the callback-management HTTP API and its Spring Boot application. | runnable service |
| Callbacks | Group the outbound callback platform: configuration, domain authorization, subscriptions, execution tracking, and dispatch. | component family |
| Client - Complete Example | Explore concrete REST, GraphQL, OAuth2, upload, and WebSocket client service examples. | example application |
| Client | Call REST, SOAP, and gRPC services through reactive client builders with shared resilience and observability facilities. | application library |
| Notifications Core | Send email, SMS, and push notifications through provider ports, with templates, preferences, and metrics. | application library |
| Notifications | Group the notification service contracts and their core implementation. | component family |
| Notifications - Firebase | Send push notifications through Firebase Cloud Messaging. | provider adapter |
| Notifications - Resend | Send email through the Resend provider adapter. | provider adapter |
| Notifications - SendGrid | Send email through SendGrid while retaining the common notification service contract. | provider adapter |
| Notifications - Twilio | Send SMS notifications through Twilio. | provider adapter |
Event-driven integration¶
Let other operations react to an accepted application. Follow the event-integration journey to separate transport delivery, webhook ingestion, and domain history.
| Component | Purpose | Role |
|---|---|---|
| EDA | Publish and consume events through a common envelope and transport-independent APIs. | application library |
| EDA - Kafka | Connect the EDA publishing and consuming abstractions to Apache Kafka. | provider adapter |
| EDA - PostgreSQL | Deliver EDA events through a PostgreSQL outbox with LISTEN/NOTIFY support. | provider adapter |
| EDA - RabbitMQ | Connect the EDA abstractions to RabbitMQ exchanges, queues, and routing keys. | provider adapter |
| Webhook Management Platform - Core | Validate, enrich, batch/compress, and publish incoming webhook events with retry, rate-limit, and dead-letter support. | application library |
| Webhook Management Platform - Interfaces | Share the provider-neutral inbound webhook request and response DTOs. | shared contracts |
| Webhook Processor Framework | Implement provider-specific webhook processors, listeners, signature checks, and idempotency behavior. | application library |
| Webhook Management Platform - Java SDK | Generate a reactive Java WebClient client from the incoming webhook platform OpenAPI specification. | generated API client |
| Webhook Management Platform - Web Application | Expose the reactive incoming webhook endpoint and runnable ingestion application. | runnable service |
| Webhooks | Group incoming webhook contracts, ingestion logic, HTTP service, processing extensions, and generated SDK. | component family |
Domain and data¶
Persist the application, retain its history, or store supporting documents. Follow the data journey to choose the state model before adding stores and caches.
| Component | Purpose | Role |
|---|---|---|
| Cache | Use a common cache API with a local Caffeine default and pluggable distributed providers. | application library |
| Cache - Hazelcast | Adapt a host-managed Hazelcast map to the common cache contract. | provider adapter |
| Cache - JCache | Adapt a host-managed JCache implementation to the common cache contract. | provider adapter |
| Cache - Postgres | Store cache entries in PostgreSQL through R2DBC, including expiry metadata. | provider adapter |
| Cache - Redis | Back the shared cache abstraction with Redis and reactive serialization. | provider adapter |
| Enterprise Content Management | Define content-management ports, adapter selection, document contracts, and resilience/observability support. | application library |
| ECM eSignature - Adobe Sign | Implement the ECM signature-envelope port with Adobe Sign. | provider adapter |
| ECM eSignature - DocuSign | Implement the ECM signature-envelope port with DocuSign. | provider adapter |
| ECM eSignature - Logalty | Implement the ECM signature-envelope port with Logalty. | provider adapter |
| ECM Storage - AWS (S3) | Implement ECM document-content storage against Amazon S3. | provider adapter |
| ECM Storage - Azure Blob | Implement ECM document-content storage against Azure Blob Storage. | provider adapter |
| Event Sourcing | Persist domain events, rehydrate aggregates, and manage snapshots through reactive event-store contracts. | application library |
| R2DBC | Build reactive repository filtering and pagination on Spring Data R2DBC. | application library |
Business coordination¶
Coordinate eligibility checks, capacity reservations, and review steps. Follow the coordination journey to choose Saga, TCC, or Workflow from the required recovery behavior.
| Component | Purpose | Role |
|---|---|---|
| Orchestration | Coordinate workflows, compensating sagas, and try-confirm-cancel operations in a reactive application. | application library |
Service operations¶
Make submission and review outcomes visible to operators. Follow the operations journey to connect application signals to the deployment and its telemetry backend.
| Component | Purpose | Role |
|---|---|---|
| Config Server | Run a Spring Cloud Config Server for centralized service configuration. | runnable service |
| Observability | Provide a common metrics, tracing, health, and context-propagation foundation for framework components. | application library |
| Web | Handle WebFlux errors, request metadata, idempotency, CORS, and sensitive-data masking consistently. | application library |
Team-wide architecture¶
Share dependencies and service conventions across teams. Follow the architecture journey before choosing parent/BOM management, starters, or extension contracts.
| Component | Purpose | Role |
|---|---|---|
| Bill of Materials | Align the versions of the 82 managed Jafly artifacts without inheriting the build parent. | build management |
| Build Parent | Inherit a consistent Java build, dependency platform, and plugin configuration for framework-based services. | build management |
| Backoffice | Extend application-layer contexts for internal portals, impersonation, and backoffice resource controllers. | application library |
| Kernel | Share a consistent exception vocabulary across application, domain, and infrastructure boundaries. | application library |
| Plugin API | Define plugins, extension points, extension registration, and lifecycle contracts without the host implementation. | shared contracts |
| Plugin Core | Load plugins, resolve dependencies, and manage extension registration in a host process. | application library |
| Plugins | Group the API and implementation of the framework plugin system. | component family |
| Starter Application | Build application-layer request contexts and business process coordination. | dependency starter |
| Starter Core | Assemble core infrastructure conventions for WebClient, actuator, logging, configuration, and service discovery. | dependency starter |
| Starter Data | Build data enrichment, job orchestration, quality, lineage, and provider operation services. | dependency starter |
| Starter Domain | Assemble the framework dependencies used by domain services. | dependency starter |
| Utils | Render FreeMarker templates and convert rendered content to document formats; mark filter DTO fields. | application library |
| Validators | Apply Jakarta Bean Validation constraints to financial, identity, contact, and date fields. | application library |
Coordinate coverage¶
The catalog covers 82 framework artifacts managed by the BOM, the build parent/BOM, and two example applications. The upstream Spring Security dependency also managed by the BOM is external and is not counted as a framework module. POM project groups organize child artifacts; choose the concrete child JAR for a runtime dependency.