# Database per Service

# Descrição do Padrão

O padrão será apresentado em duas etapas: O Problema no qual seu uso faz sentido, e A Solução que o padrão propõe para o resolver.

# O Problema

Em um sistema de microsserviços, o compartilhamento de fontes de dados aumenta o acoplamento entre serviços. Além disso, quando há diversos serviços consultando uma mesma base, há a preocupação da manutenção de consistência e de acessos concorrentes.

# A Solução

Crie fontes de dados distribuídas de modo que cada qual seja acessada exclusivamente por um único serviço. A divisão entre as fontes pode ser física -- ou seja, cada serviço usa uma instância de banco diferente -- ou lógica -- cada serviço usa um namespace diferente em uma mesma instância de banco.

# Análise de Trade-offs

➕ localmente, facilita a gestão de dados de cada serviço

➖ globalmente, aumenta a complexidade da gestão de dados, pela replicação e manutenção em ambiente heterogêneo

➕ diminui o acoplamento entre serviços que antes compartilhavam uma mesma fonte