[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fsah83b0x7pxj":3,"$f3p5be7ah4l7gm":113},{"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":20,"review_due_at":18,"canonical_url":18,"seo_title":21,"seo_description":12,"hero_asset_id":18,"reading_time":22,"version":23,"technology_versions":24,"review_frequency_days":18,"parent_content_id":25,"sort_in_parent":26,"hub_entry_status":27,"content_blocks":28,"hero_alt_text":18,"hero_caption":18,"hero_credit":18,"publication_scope":105,"access_level":106,"approved_at":18,"approved_by":18,"review_note":18,"home_enabled":107,"home_slot":108,"home_variant":109,"home_priority":110,"home_eyebrow":18,"home_valid_from":18,"home_valid_to":18,"home_image_asset_id":18,"promotion_kind":111,"sponsor_name":18,"sponsor_url":18,"sponsor_disclosure":112},"43344fa9-bf8c-4151-b11f-53f803938744","microservizi-database-per-service","it","CAPSULE","Database per Service","Database & Consistency","Ogni servizio possiede il proprio modello di persistenza e gli altri accedono ai suoi dati tramite API o eventi.","Famiglia: Database & Consistency\nOrigine contenuto: Pattern classico presente nel draft, riorganizzato e approfondito.\n\nProblema\nServizi indipendenti diventano accoppiati se leggono o modificano direttamente le tabelle possedute da altri.\n\nPattern\nOgni servizio possiede il proprio modello di persistenza e gli altri accedono ai suoi dati tramite API o eventi.\n\nCome funziona\nL'ownership è più importante della separazione fisica. Database distinti sono una forte barriera; schemi distinti possono essere una tappa intermedia. Le join cross-service vengono sostituite da API, eventi o read model.\n\nEsempio sanitario\nOrder Entry non esegue SELECT sul database EMPI: usa Patient API o mantiene una proiezione locale aggiornata da PatientUpdated.\n\nBenefici\n• Autonomia di schema\n• Deployment indipendente\n• Riduce coupling ai dettagli DB\n\nTrade-off\n• Query cross-service più difficili\n• Consistenza eventuale\n• Più database da operare\n\nQuando usarlo\nQuando si vuole reale autonomia tra servizi.\n\nQuando evitarlo\nQuando si creano database separati senza separare ownership e dominio.\n\nPattern correlati\n• microservizi-shared-database\n• microservizi-cqrs\n• microservizi-materialized-view\n","6f7335c9-bd3f-408f-b64c-b6b1ab0016d8","DEEPENED","EXAMPLE_ONLY","PUBLISHED",null,"2026-08-27T19:12:02.157Z","2026-09-05T13:22:19.783Z","Database per Service | Capsule Informatiche",8,4,{},"20676d31-9c90-432e-b23c-032bf2ba2a49",400,"PLANNED",[29,33,37,41,44,46,49,52,55,58,61,65,68,71,74,77,80,83,86],{"id":30,"text":31,"type":32},"ms-database-per-service-01","Famiglia: Dati e consistenza · Pattern classico","callout",{"id":34,"text":35,"type":36},"ms-database-per-service-02","Il problema","heading2",{"id":38,"text":39,"type":40},"ms-database-per-service-03","Servizi indipendenti diventano accoppiati se leggono o modificano direttamente le tabelle possedute da altri.","paragraph",{"id":42,"text":43,"type":36},"ms-database-per-service-04","Il pattern",{"id":45,"text":12,"type":40},"ms-database-per-service-05",{"id":47,"text":48,"type":36},"ms-database-per-service-06","Come funziona",{"id":50,"text":51,"type":40},"ms-database-per-service-07","L'ownership è più importante della separazione fisica. Database distinti sono una forte barriera; schemi distinti possono essere una tappa intermedia. Le join cross-service vengono sostituite da API, eventi o read model.",{"id":53,"text":54,"type":36},"ms-database-per-service-08","Esempio sanitario",{"id":56,"text":57,"type":32},"ms-database-per-service-09","Order Entry non esegue SELECT sul database EMPI: usa Patient API o mantiene una proiezione locale aggiornata da PatientUpdated.",{"id":59,"text":60,"type":36},"ms-database-per-service-10","Benefici",{"id":62,"type":63,"items":64},"ms-database-per-service-11","bullet_list","Autonomia di schema\nDeployment indipendente\nRiduce coupling ai dettagli DB",{"id":66,"text":67,"type":36},"ms-database-per-service-12","Trade-off",{"id":69,"type":63,"items":70},"ms-database-per-service-13","Query cross-service più difficili\nConsistenza eventuale\nPiù database da operare",{"id":72,"text":73,"type":36},"ms-database-per-service-14","Quando usarlo",{"id":75,"text":76,"type":40},"ms-database-per-service-15","Quando si vuole reale autonomia tra servizi.",{"id":78,"text":79,"type":36},"ms-database-per-service-16","Quando evitarlo",{"id":81,"text":82,"type":40},"ms-database-per-service-17","Quando si creano database separati senza separare ownership e dominio.",{"id":84,"text":85,"type":36},"ms-database-per-service-18","Pattern correlati",{"id":87,"type":88,"relations":89},"ms-database-per-service-19","related_capsules",[90,95,100],{"slug":91,"title":92,"summary":93,"contentId":94},"microservizi-shared-database","Shared Database Pattern","Più servizi condividono temporaneamente un database, idealmente con ownership di tabelle o schemi e regole rigorose.","165d9405-b2ad-4d3b-8161-f6d415236530",{"slug":96,"title":97,"summary":98,"contentId":99},"microservizi-cqrs","CQRS","Separare command model e query\u002Fread model, eventualmente con storage, schemi e scalabilità differenti.","9d417c0a-6c02-41bd-93a3-8b2ed1c3bb73",{"slug":101,"title":102,"summary":103,"contentId":104},"microservizi-materialized-view","Materialized View \u002F Read Model","Costruire una proiezione locale denormalizzata, aggiornata da eventi o processi controllati, pensata per uno specifico read path.","df818de8-199f-4051-88dc-d1f7144993da","PORTAL","ANONYMOUS",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":114,"secondaryTopics":130,"tags":131,"primaryTopic":152,"technologies":156},[115,122],{"source_id":116},{"id":117,"type":118,"title":119,"author":18,"publisher":18,"edition":120,"url":18,"license_notes":121},"e4dd3e83-daa7-4867-b1ba-3d8b9d224299","PDF","Microservices Design Patterns - Draft","Draft caricato nel progetto","Fonte primaria caricata dall'utente. Utilizzata per la tassonomia classica dei pattern di microservizi e per i concetti esplicitamente presenti nel draft.",{"source_id":123},{"id":124,"type":125,"title":126,"author":18,"publisher":127,"edition":128,"url":18,"license_notes":129},"d1cfd7ef-53d0-4124-bafd-8c10c7ce7fde","PROJECT_NOTE","ADT - Architettura tecnica e pattern distribuiti","Capsule Informatiche","Materiale progettuale","Materiale architetturale già analizzato. Usato come riferimento integrativo per messaging, outbox\u002Finbox, idempotenza, saga, read model, resilienza e observability.",[],[132,137,142,147],{"tag_id":133},{"id":134,"name":135,"slug":136},"a94e416a-7400-4ff4-8671-a2fc5635c4e0","Microservizi","microservizi",{"tag_id":138},{"id":139,"name":140,"slug":141},"74df0420-fe01-463d-84f1-79bbc7ee7114","Design Pattern","design-pattern",{"tag_id":143},{"id":144,"name":145,"slug":146},"52c3bb5a-82db-413f-b02d-3e8d00a812cf","Data Consistency","data-consistency",{"tag_id":148},{"id":149,"name":150,"slug":151},"41efb812-db64-4faf-b04c-6bc5d82132c4","Distributed Systems","distributed-systems",[153],{"id":14,"name":154,"slug":155},"Dati e Consistenza Distribuita","dati-consistenza-distribuita",[157],{"technology_id":158},{"id":159,"name":160,"slug":161,"vendor":162},"61595be7-6d6f-43ab-bec2-bef42e840988","PostgreSQL","postgresql","PostgreSQL Global Development Group"]