20 lines
1.3 KiB
Plaintext
20 lines
1.3 KiB
Plaintext
$ mvn -pl order-fulfillment -am test
|
|
|
|
2026-10-03T23:50:25.993+05:30 INFO 1737 --- [order-fulfillment] [ task-2] c.a.m.n.NotificationManagement : Order 1 received for 3x WIDGET-1
|
|
2026-10-03T23:50:26.062+05:30 INFO 1737 --- [order-fulfillment] [ task-4] c.a.m.n.NotificationManagement : Order 1 is on its way (WIDGET-1)
|
|
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.888 s -- in com.ankurm.modulithdemo.order.OrderFulfillmentIntegrationTests
|
|
[INFO] Running com.ankurm.modulithdemo.ModularityTests
|
|
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.437 s -- in com.ankurm.modulithdemo.ModularityTests
|
|
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
|
|
[INFO] BUILD SUCCESS
|
|
|
|
All three modules fired in sequence from a single published OrderPlaced, on two
|
|
different async listener threads (task-2, task-4 - each @ApplicationModuleListener
|
|
runs on its own thread from the pool, which is why ordering between independent
|
|
listeners on the SAME event is not guaranteed, only causal ordering between an event
|
|
and what it triggers):
|
|
|
|
order -> inventory (reserve stock, publish StockReserved)
|
|
-> shipping (schedule shipment, publish ShipmentScheduled)
|
|
-> notification (fires twice: once reacting to OrderPlaced, once to ShipmentScheduled)
|