[{"data":1,"prerenderedAt":133},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fsymfony\u002Fcross-module":3},{"id":4,"title":5,"body":6,"description":125,"extension":126,"meta":127,"navigation":128,"path":129,"seo":130,"stem":131,"__hash__":132},"content\u002Fv1\u002Fadapters\u002Fsymfony\u002Fcross-module.md","Symfony cross-module bridges",{"type":7,"value":8,"toc":117},"minimark",[9,13,48,53,56,60,87,91,94,98],[10,11,5],"h1",{"id":12},"symfony-cross-module-bridges",[14,15,16],"blockquote",{},[17,18,19,23,24,27,28,31,34,35,42,43],"p",{},[20,21,22],"strong",{},"Host:"," Symfony ",[20,25,26],{},"8.1.x"," (PHP ≥ 8.4) · Researched 2026-08",[29,30],"br",{},[20,32,33],{},"One-shot:"," ",[36,37,39],"a",{"href":38},"\u002Fapply\u002Fsymfony.full.md",[40,41,38],"code",{}," · Short: ",[36,44,46],{"href":45},"\u002Fsymfony",[40,47,45],{},[49,50,52],"h2",{"id":51},"sync-acl","Sync ACL",[17,54,55],{},"Local port interface → Infra ACL adapter service → thin peer façade service.",[49,57,59],{"id":58},"async-messenger","Async (Messenger)",[61,62,63,71,74,81],"ul",{},[64,65,66,67,70],"li",{},"Publisher: Shared dispatcher adapter → Messenger message (primitives \u002F DTO, ",[20,68,69],{},"not"," Doctrine entities)",[64,72,73],{},"Consumer: Infra message handler maps payload → Application DTO → inbound Use Case",[64,75,76,77,80],{},"Use async transport; set Doctrine transport ",[40,78,79],{},"auto_setup=false"," in production",[64,82,83,84],{},"Idempotency store on ",[40,85,86],{},"eventId",[49,88,90],{"id":89},"replaceability","Replaceability",[17,92,93],{},"ACL adapter becomes HTTP client; Messenger handler becomes webhook controller — Application\u002FDomain unchanged.",[49,95,97],{"id":96},"related","Related",[61,99,100,106],{},[64,101,102],{},[36,103,105],{"href":104},"\u002Fv1\u002Fadapters\u002Fsymfony","Symfony adapter overview",[64,107,108,112,113],{},[36,109,111],{"href":110},"\u002Fv1\u002Fcore","Core"," · ",[36,114,116],{"href":115},"\u002Fv1\u002Fadopt\u002Fapply","Apply index",{"title":118,"searchDepth":119,"depth":119,"links":120},"",2,[121,122,123,124],{"id":51,"depth":119,"text":52},{"id":58,"depth":119,"text":59},{"id":89,"depth":119,"text":90},{"id":96,"depth":119,"text":97},"ACL and async events on Symfony.","md",{},true,"\u002Fv1\u002Fadapters\u002Fsymfony\u002Fcross-module",{"title":5,"description":125},"v1\u002Fadapters\u002Fsymfony\u002Fcross-module","g3BA661uW-_GOTbvJxQoSuMLnJZDDRQx-NTCU7yAZXA",1786241414288]