# data[].attributes.body
Elimina ponto de falha único da aplicação

Permite Confidencialidade dos participantes da rede

Escalabilidade sem grande aumento de custos de operação

# data[].attributes.body
O Microserviço é um padrão arquitetural que resolve a interoperabilidade e a centralização da regra de negócio a nível de código dentro de uma organização de software.

Dentre os problemas que essa modelagem resolve, temos:

● Integração de sistemas distintos: Facilita a comunicação entre aplicações antigas, novas, locais e remotas.

● Alto acoplamento dos sistemas legados: SOA quebra esse acoplamento, permitindo integração sem reescrever tudo.

● Dificuldade de adaptação a mudanças de negócio: A composição de serviços permite mudanças mais rápidas.

● Baixa reutilização: Serviços SOA podem ser reutilizados em múltiplos cenários e aplicações.

# data[].attributes.body
● Interoperabilidade: Diferentes tecnologias e plataformas conseguem interagir via serviços padronizados.

● Reusabilidade: Serviços são criados para serem usados em múltiplos contextos.

● Escalabilidade: Componentes podem ser escalados separadamente conforme necessário.

● Manutenibilidade: Mudanças em um serviço não afetam necessariamente outros serviços.

● Disponibilidade: Serviços podem ser distribuídos geograficamente para alta disponibilidade.

# data[].attributes.body
Ele diminui o acoplamento do sistema, de modo que as partes funcionem de maneira independente. Além disso, ele contribui para a persistência dos dados; se o consumidor estiver fora do ar, por exemplo, o evento gerado pelo produtor não será perdido e será consumido assim que o consumidor voltar a estar disponível.

# data[].attributes.body
Alta flexibilidade e integração → Introduz complexidade na gestão de serviços (descoberta, orquestração, segurança).

Facilita a evolução e manutenção de sistemas → Necessita de ferramentas robustas para governança, versionamento e monitoramento.

Interoperabilidade entre sistemas diferentes → Requer padronização rigorosa de contratos de serviço (WSDL, APIs REST)

# data[].attributes.body
Confiabilidade: os eventos/dados não são perdidos se alguma das partes do sistema ficarem fora do ar. Como o sistema é assíncrono, os eventos são mantidos e consumidos posteriormente.

Reusabilidade: os componentes podem ser usados em múltiplos contextos

Escalabilidade: como os componentes funcionam de maneira independente, o sistema é facilmente escalável

Manutenibilidade: baixo acoplamento entre os componentes

# data[].attributes.body
Tolerância à Falhas

Escalabilidade (ao adicionar novos nós à rede)

Confidencialidade

Eficiência na Utilização de Recursos (capacidade da aplicação e custos distribuídos entre os nós)

# data[].attributes.body
Sistema de fácil manutenção (baixo acoplamento)

Alta confiança de dados

Baixa velocidade, se comparada a outros processos do tipo componente-conector (depende de latência, disponibilidade de componentes, etc)

# data[].attributes.headline
Lista de participantes com Num USP e nome

# data[].attributes.subject
Lista de participantes com Num USP e nome

# data[].attributes.body
Beatriz Viera - 13692362

Cassio Perpetuo - 8538501

Daniel Contente - 12547614

Ryan Souza - 12822062

# data[].attributes.body
Cada aluno deverá explicar para seus colegas de grupo o padrão sob sua responsabilidade.

Após as apresentações, o grupo deverá elaborar um quadro comparativo entre os padrões da categoria destacando:

o problema que ele resolve

requisitos de arquitetura (ex. atributos de qualidade) que esse padrão foca

os trade-offs do padrão

Discutir no grupo e fazer um resumo de possíveis situações onde cada padrão poderia ser útil.

# data[].attributes.body
Disponibilidade e Capacidade dependem diretamente dos nós participantes.

Moderação do conteúdo da rede é impraticável o que causa risco em termos da transmissão de conteúdo malicioso ou contendo propriedade intelectual protegida entre os nós - Difícil compliance com a legislação, portanto.

# data[].attributes.body
Microsserviços: Grandes aplicações com muitas equipes responsáveis por diferentes partes do sistema. Exemplo: Netflix.

Peer-to-Peer: Aplicações em que anonimidade é fundamental e há limitações de custo com servidores. Exemplo: Bitcoin e BitTorrent.

Publish-Subscribe: Aplicações em que não há necessidade de sincronização entre os produtores e consumidores de certo recurso. Exemplo: Publicação em redes sociais (X, Facebook etc).