┌────────────────────┐ ┌─────────────────────┐
│ │ │ │ ┌─────────────┐
│ Postgres database │◄──────────┤ ◄─────┐ │ ◄──── Get message ─ │ │
│ │ │ │ │ │ AMQ │
└────────────────────┘ │ Transaction 1 │ │ │
│ │ │ └─────────────┘
┌────────────────────┐ │ │ │ ▲
│ │◄──────────┤ ◄─────┘ │────────Commit/Rollback─────┘
│ Mysql database │ │ │
│ │ │ ├
└────────────────────┘ │ │
│ Transaction 2 │
│ │ │
│ │ │
└──────────┼──────────┘
│
│
│
│
┌─────────▼──────────┐
│ │
│ BAM Database │
│ │
└────────────────────┘
docker-compose --project-directory=infra up
docker-compose --project-directory=infra run activemq bash
/opt/amq/bin/artemis queue create --name=demo --address=demo --anycast --durable --preserve-on-no-consumers --auto-create-address --url tcp://activemq:61616
mvn spring-boot:run
- Open pgadmin
- Open mysql adminer
- Open AMQ console
- Publish message '1' to demo queue
- Check demo table in postgres (1 row added)
- Check demo table in mysql (1 row added)
- Check bam table in postgres (2 rows added)
- Truncate demo table in postgres
- Publish message '1' to demo queue
- Check demo table in postgres (0 rows added)
- Check demo table in mysql (0 rows added)
- Check bam table in postgres (2 rows added)