Skip to content

Jafly. Callback Management Platform - Web

Callback Management Platform - Web

Expose the callback-management HTTP API and its Spring Boot application.

Run CallbackManagementApplication with the database and messaging configuration expected by callbacks-core. Use the configuration, subscription, domain, and execution controllers through the published API contract.

Maven artifact Packaging Source project
org.fireflyframework:fireflyframework-callbacks-web jar modules/callbacks/fireflyframework-callbacks-web

Part of External services.

In the onboarding service

Operate this service if onboarding partners manage callbacks through HTTP. Configure its database/messaging backend, register the partner domain, and inspect execution records to distinguish registration from delivery.

Add the component

Installation and version availability explains source builds and published releases.

<dependency>
    <groupId>org.fireflyframework</groupId>
    <artifactId>fireflyframework-callbacks-web</artifactId>
    <version>26.10.20-SNAPSHOT</version>
</dependency>

Quick start

The Java examples in this section are API fragments for application code. Use the stated imports and supply the application-owned collaborators described alongside them.

Install the selected service and its reactor prerequisites, configure its database and messaging settings, and start its actual Boot application from the root:

./mvnw -pl :fireflyframework-callbacks-web -am install
./mvnw -f modules/callbacks/fireflyframework-callbacks-web/pom.xml spring-boot:run

The controllers expose /api/v1/authorized-domains, /api/v1/callback-configurations, /api/v1/event-subscriptions, and /api/v1/callback-executions. Create/verify the destination domain, create its callback configuration, and register subscriptions before expecting event routing to deliver callbacks. See the platform guide for request examples; use the execution routes to inspect outcomes rather than assuming registration proves delivery.

Configuration and wiring

This module declares no @ConfigurationProperties class of its own. Use the constructor/port contracts above and the configuration of the host or related core module.

Public API and extension points

Type Contract and responsibility
CallbackManagementApplication Defines main operations.
CallbackConfigurationController REST controller for callback configuration management.
AuthorizedDomainController REST controller for authorized domain management.
EventSubscriptionController REST controller for event subscription management.
CallbackExecutionController REST controller for callback execution history.
Related component Why it belongs nearby
Callbacks Library Group the outbound callback platform: configuration, domain authorization, subscriptions, execution tracking, and dispatch.
Callback Management Platform - Core Route subscribed events and dispatch outbound HTTP callbacks with signing, retries, circuit breaking, and execution tracking.
Web Handle WebFlux errors, request metadata, idempotency, CORS, and sensitive-data masking consistently.
Observability Provide a common metrics, tracing, health, and context-propagation foundation for framework components.
EDA - Kafka Connect the EDA publishing and consuming abstractions to Apache Kafka.

Build and test

Use Java 25. From the repository root, build this component with its required dependencies:

git clone https://github.com/fireflyframework/fireflyframework-jafly.git
cd fireflyframework-jafly
./mvnw -pl :fireflyframework-callbacks-web -am verify
./mvnw -pl :fireflyframework-callbacks-web -am install

verify runs the selected projects' tests. install makes the current build available in your local Maven repository.

Representative test sources:

Some tests use Testcontainers. A working Docker-compatible container runtime is required for those fixtures; inspect their annotations and the build output to distinguish executed tests from environment-dependent skips.

Test fixture

The shouldListCallbackConfigurations test demonstrates one concrete behavior. Excerpt from CallbackEndToEndIntegrationTest.java. The test class supplies its fixtures and imports.

@Test
@Order(4)
void shouldListCallbackConfigurations() {
    // Use filter endpoint with empty filter to get all
    Map<String, Object> filterRequest = new HashMap<>();
    filterRequest.put("page", 0);
    filterRequest.put("size", 10);

    webTestClient.post()
            .uri("/api/v1/callback-configurations/filter")
            .contentType(MediaType.APPLICATION_JSON)
            .bodyValue(filterRequest)
            .exchange()
            .expectStatus().isOk()
            .expectBody()
            .jsonPath("$.content").isArray()
            .jsonPath("$.content[?(@.name == 'Test Webhook')]").exists();
}

Continue the application

Use the Callback Management Platform - SDK guide for the next part of this integration. The runnable submission/query service is in Getting started.

Source and further reading