[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4cq5f0sx72n3":3,"$f1t5r49abubtq":148},{"data":4},[5],{"id":6,"slug":7,"locale":8,"type":9,"title":10,"subtitle":11,"summary":12,"body":13,"primary_topic":14,"knowledge_status":15,"practical_validation":16,"workflow_status":17,"author_id":18,"published_at":19,"updated_at":19,"review_due_at":20,"canonical_url":21,"seo_title":10,"seo_description":12,"hero_asset_id":20,"reading_time":22,"version":23,"technology_versions":24,"review_frequency_days":25,"parent_content_id":26,"sort_in_parent":27,"hub_entry_status":28,"content_blocks":29,"hero_alt_text":21,"hero_caption":21,"hero_credit":21,"publication_scope":138,"access_level":139,"approved_at":140,"approved_by":141,"review_note":21,"home_enabled":142,"home_slot":143,"home_variant":144,"home_priority":145,"home_eyebrow":20,"home_valid_from":20,"home_valid_to":20,"home_image_asset_id":20,"promotion_kind":146,"sponsor_name":20,"sponsor_url":20,"sponsor_disclosure":147},"043c431a-dd36-4011-8407-e0aa2f2157a5","modernizzazione-legacy-sanitario-bff-api-gateway","it","CAPSULE","BFF e API Gateway: front door, composizione e Strangler routing","Centralizzare ingresso, sicurezza e composizione senza spostare nel gateway il dominio applicativo.","API Gateway e Backend for Frontend supportano routing Strangler, sicurezza e composizione delle API, ma devono restare sottili e privi di business logic di dominio.","API Gateway\nL'API Gateway è il punto di ingresso tecnico per routing, TLS, policy, rate limiting, autenticazione e osservabilità. Durante uno Strangler può decidere se una capability viene servita dal legacy o dal nuovo servizio senza modificare i client.\nBackend for Frontend\nIl BFF è più vicino all'esperienza utente: compone risposte per un frontend specifico, riduce round trip, normalizza errori e propaga il contesto di sicurezza. In un Application Shell con microfrontend può offrire endpoint orientati alle schermate pur lasciando i bounded context indipendenti.\nCosa NON deve fare\nDecidere regole di ricovero, dimissione o trasferimento.\n\nCalcolare lo stato autorevole di un ordine.\n\nAccedere direttamente ai database di più bounded context.\n\nDiventare il posto dove si inserisce ogni eccezione del legacy.\n\nConservare copie autorevoli dei dati solo per comodità della UI.\n\nGateway vs Facade\nIl Gateway è soprattutto un boundary infrastrutturale e di routing. La Facade semplifica un sottosistema applicativo. Possono coesistere: il Gateway instrada verso una LegacyFacade durante la migrazione e verso il nuovo bounded context dopo il cutover.\nSecurity\nIl gateway può validare token e applicare policy grossolane, ma l'autorizzazione di dominio deve essere verificata anche dal servizio proprietario. Non bisogna affidarsi all'idea che «se è passato dal gateway allora è autorizzato».\nOsservabilità\nIl punto di ingresso deve generare o propagare correlationId\u002FtraceId e conservarli lungo BFF, servizi, adapter e messaggi. Questo rende possibile seguire una singola operazione anche quando attraversa il confine tra nuovo e legacy.\nQuando separare Gateway e BFF\nQuando esistono più consumer, esigenze di sicurezza\u002Finfrastruttura comuni e frontend con composizioni diverse, è utile distinguere i due ruoli. In sistemi più piccoli possono essere implementati nello stesso componente, purché le responsabilità restino concettualmente separate.\n\nIl gateway deve rendere il cambiamento invisibile ai client, non rendere invisibili i confini di dominio agli sviluppatori.","58ba728e-da9d-409d-a6c7-31325e3773a8","REVIEWED","NOT_PERFORMED","PUBLISHED","fbbfd4b6-f4c7-4740-94a6-f81eb8fbb1b2","2026-08-25T18:16:41.842Z",null,"",7,3,{},365,"776fc737-dda9-4c82-bd56-b6ba0b7148d6",10,"AVAILABLE",[30,134],{"id":31,"type":32,"version":33,"doc":34},"1ed14f6e-6332-53af-900a-31b1491c6b43","rich_text",1,{"type":35,"content":36},"doc",[37,45,50,55,59,64,98,103,107,112,116,121,125,130],{"type":38,"attrs":39,"content":41},"heading",{"level":40},2,[42],{"type":43,"text":44},"text","API Gateway",{"type":46,"content":47},"paragraph",[48],{"type":43,"text":49},"L'API Gateway è il punto di ingresso tecnico per routing, TLS, policy, rate limiting, autenticazione e osservabilità. Durante uno Strangler può decidere se una capability viene servita dal legacy o dal nuovo servizio senza modificare i client.",{"type":38,"attrs":51,"content":52},{"level":40},[53],{"type":43,"text":54},"Backend for Frontend",{"type":46,"content":56},[57],{"type":43,"text":58},"Il BFF è più vicino all'esperienza utente: compone risposte per un frontend specifico, riduce round trip, normalizza errori e propaga il contesto di sicurezza. In un Application Shell con microfrontend può offrire endpoint orientati alle schermate pur lasciando i bounded context indipendenti.",{"type":38,"attrs":60,"content":61},{"level":40},[62],{"type":43,"text":63},"Cosa NON deve fare",{"type":65,"content":66},"bulletList",[67,74,80,86,92],{"type":68,"content":69},"listItem",[70],{"type":46,"content":71},[72],{"type":43,"text":73},"Decidere regole di ricovero, dimissione o trasferimento.",{"type":68,"content":75},[76],{"type":46,"content":77},[78],{"type":43,"text":79},"Calcolare lo stato autorevole di un ordine.",{"type":68,"content":81},[82],{"type":46,"content":83},[84],{"type":43,"text":85},"Accedere direttamente ai database di più bounded context.",{"type":68,"content":87},[88],{"type":46,"content":89},[90],{"type":43,"text":91},"Diventare il posto dove si inserisce ogni eccezione del legacy.",{"type":68,"content":93},[94],{"type":46,"content":95},[96],{"type":43,"text":97},"Conservare copie autorevoli dei dati solo per comodità della UI.",{"type":38,"attrs":99,"content":100},{"level":40},[101],{"type":43,"text":102},"Gateway vs Facade",{"type":46,"content":104},[105],{"type":43,"text":106},"Il Gateway è soprattutto un boundary infrastrutturale e di routing. La Facade semplifica un sottosistema applicativo. Possono coesistere: il Gateway instrada verso una LegacyFacade durante la migrazione e verso il nuovo bounded context dopo il cutover.",{"type":38,"attrs":108,"content":109},{"level":40},[110],{"type":43,"text":111},"Security",{"type":46,"content":113},[114],{"type":43,"text":115},"Il gateway può validare token e applicare policy grossolane, ma l'autorizzazione di dominio deve essere verificata anche dal servizio proprietario. Non bisogna affidarsi all'idea che «se è passato dal gateway allora è autorizzato».",{"type":38,"attrs":117,"content":118},{"level":40},[119],{"type":43,"text":120},"Osservabilità",{"type":46,"content":122},[123],{"type":43,"text":124},"Il punto di ingresso deve generare o propagare correlationId\u002FtraceId e conservarli lungo BFF, servizi, adapter e messaggi. Questo rende possibile seguire una singola operazione anche quando attraversa il confine tra nuovo e legacy.",{"type":38,"attrs":126,"content":127},{"level":40},[128],{"type":43,"text":129},"Quando separare Gateway e BFF",{"type":46,"content":131},[132],{"type":43,"text":133},"Quando esistono più consumer, esigenze di sicurezza\u002Finfrastruttura comuni e frontend con composizioni diverse, è utile distinguere i due ruoli. In sistemi più piccoli possono essere implementati nello stesso componente, purché le responsabilità restino concettualmente separate.",{"id":135,"type":136,"version":33,"text":137},"76ab1e11-16e6-5a0e-9231-d878ae58183e","callout","Il gateway deve rendere il cambiamento invisibile ai client, non rendere invisibili i confini di dominio agli sviluppatori.","PORTAL","ANONYMOUS","2026-08-25T18:16:40.452Z","794a9185-136c-4415-ab23-cd144eb5870e",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":149,"secondaryTopics":150,"tags":151,"primaryTopic":152,"technologies":156},[],[],[],[153],{"id":14,"name":154,"slug":155},"Software Architecture","software-architecture",[]]