image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Roberto Melo
Roberto Melo14/03/2025 11:02
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

O que seriam Arquiteturas Orientadas a Serviços e Eventos (SOA/EDA)?

    Estive analisando uma vaga que solicitava ter conhecimento em SOA e EDA, então decidi investigar sobre o assunto dando origem a esse artigo.

    Arquiteturas Orientadas a Serviços (SOA - Service-Oriented Architecture) e Arquiteturas Orientadas a Eventos (EDA - Event-Driven Architecture) são dois paradigmas distintos, mas complementares, para projetar sistemas distribuídos.

    image

    1. SOA (Service-Oriented Architecture)

    A SOA se baseia na criação de serviços independentes e reutilizáveis, que expõem funcionalidades específicas por meio de interfaces bem definidas. Esses serviços podem ser acessados por outros componentes do sistema, geralmente por meio de protocolos como REST ou SOAP.

    Características da SOA:

    • Desacoplamento: Os serviços são independentes e podem ser modificados sem impactar diretamente outros serviços.
    • Reutilização: Um mesmo serviço pode ser utilizado por diferentes aplicações.
    • Interoperabilidade: Serviços podem ser consumidos por diferentes tecnologias e plataformas.
    • Orquestração: O fluxo de trabalho pode ser controlado por um orquestrador (ex.: um API Gateway ou um ESB - Enterprise Service Bus).

    Exemplo de SOA:

    Um sistema de e-commerce pode ter serviços como:

    • UserService para gerenciar usuários
    • OrderService para processar pedidos
    • PaymentService para lidar com pagamentos

    Cada serviço expõe endpoints que permitem outras partes do sistema interagir com ele.

    2. EDA (Event-Driven Architecture)

    A EDA se baseia na comunicação assíncrona entre componentes através de eventos. Em vez de chamar diretamente um serviço (como na SOA), um componente publica um evento, e outros componentes interessados nesse evento podem consumi-lo e reagir a ele.

    Características da EDA:

    • Assincronismo: Eventos são publicados e processados de forma assíncrona.
    • Baixo acoplamento: Os serviços não precisam conhecer uns aos outros, apenas os eventos que processam.
    • Escalabilidade: Como os eventos são processados de forma independente, o sistema pode escalar melhor.
    • Reatividade: Permite construir sistemas reativos que respondem a mudanças rapidamente.

    Exemplo de EDA:

    No mesmo sistema de e-commerce:

    1. O OrderService cria um pedido e publica um evento "OrderCreated".
    2. O PaymentService escuta esse evento e processa o pagamento.
    3. O ShippingService escuta o evento "PaymentConfirmed" e agenda a entrega.

    Esses serviços não interagem diretamente; eles apenas ouvem e reagem a eventos.

    Quando usar SOA?

    • Quando os serviços precisam se comunicar de forma direta e síncrona.
    • Para sistemas que exigem respostas imediatas (ex.: APIs REST para consulta de dados).

    Quando usar EDA?

    • Para sistemas altamente escaláveis e distribuídos.
    • Quando há necessidade de processar eventos em tempo real (ex.: sistemas de monitoramento, e-commerce, IoT).
    Compartilhe
    Recomendados para você
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Microsoft AI for Tech - Copilot Studio
    Comentários (1)
    Alessandra Santos
    Alessandra Santos - 14/03/2025 11:35

    Excelente explicação!

    Recomendados para você