Spring Integration ⇄ Pulse
Spring Integration possède le flow de messages ; Pulse est le step de flux atteint via le Http.outboundGateway de première classe — pas de glue. Exemple du repo : examples/spring-integration-pulse-bridge/ — exécuté de bout en bout comme vraie app Spring Boot 3.3 / SI 6 (JDK 17+, validé sur JDK 21).
IntegrationFlow.from("orders.input")
.enrichHeaders(orderId, Authorization)
.transform(toJson)
.handle(Http.outboundGateway(".../api/pulse/x/order-scoring/in").POST) // envoyer
.delay(1500ms)
.handle(Http.outboundGateway(".../api/pulse/events/order-scoring.score.out").GET) // lire
.handle((payload, headers) -> decide(...)); // escalate | auto-approve
Lancez-le
pulse server start --dev
mkdir app && cp pulse.yaml app/ && (cd app && pulse deploy .) # monte order-scoring
PULSE_URL=http://localhost:9090 mvn -q spring-boot:run
Sortie validée
amount= 2500 -> decision=escalate
amount= 300 -> decision=auto-approve
Le flow garde le modèle channels/transformers/gateways de Spring ; l'intelligence temps réel stateful vit dans le stage Pulse, upgradable sans toucher le flow.
Ensuite
- Guide Apache Camel — la même couture dans l'autre framework EIP
- Appeler votre app de n'importe où