1 min readCalm pace · scan the outline anytime

Symfony cross-module bridges

ACL and async events on Symfony.

Symfony cross-module bridges

Host: Symfony 8.1.x (PHP ≥ 8.4) · Researched 2026-08
One-shot: /apply/symfony.full.md · Short: /symfony

Sync ACL

Local port interface → Infra ACL adapter service → thin peer façade service.

Async (Messenger)

  • Publisher: Shared dispatcher adapter → Messenger message (primitives / DTO, not Doctrine entities)
  • Consumer: Infra message handler maps payload → Application DTO → inbound Use Case
  • Use async transport; set Doctrine transport auto_setup=false in production
  • Idempotency store on eventId

Replaceability

ACL adapter becomes HTTP client; Messenger handler becomes webhook controller — Application/Domain unchanged.

Modular Hexagonal Domain-Driven Design
Core 1.0.0-draft