🚀 1.1 A Evolução dos Serviços: De SOAP a Microsserviços

A história do desenvolvimento Java corporativo é uma jornada de superação da complexidade. No início do século, a grande revolução foi a capacidade de sistemas conversarem entre si, independentemente de plataforma, através do padrão SOAP (Simple Object Access Protocol).

A Era do XML e SOAP

O SOAP utilizava XML exaustivo para garantir contratos rígidos de comunicação. Embora confiável, o overhead era massivo: cada mensagem carregava metadados pesados, exigindo servidores robustos para processar simples trocas de dados.

sequenceDiagram
    participant App1
    participant SOAP_Service
    App1->>SOAP_Service: Requisição XML (Envelope + Body)
    SOAP_Service->>App1: Resposta XML (Complexa/WSDL)

A Revolução REST (Representational State Transfer)

Como alternativa à complexidade do SOAP, surgiu o REST, idealizado por Roy Fielding. O REST revolucionou ao utilizar a própria semântica do protocolo HTTP (GET, POST, PUT, DELETE) para gerenciar estados de recursos.

Níveis de Maturidade de Richardson

Para alcançar a “Glória do REST”, um sistema deve evoluir através de quatro níveis:

graph TD
    N0[Nível 0: POX - Plain Old XML] --> N1[Nível 1: Recursos]
    N1 --> N2[Nível 2: Verbos HTTP]
    N2 --> N3["Nível 3: HATEOAS - Controles Hipermídia"]

O Surgimento dos Microsserviços

Mesmo com o REST, muitas aplicações permaneciam como Monólitos: um único deploy contendo todas as funcionalidades. Se uma parte precisasse crescer, toda a aplicação deveria ser replicada, desperdiçando recursos.

graph LR
    subgraph mon_lito_escalabilidade_r_gida [Monólito Escalabilidade Rígida]
        M[App] -- "Escala tudo ou nada" --> M1[App]
    end
    subgraph microsservi_os_escalabilidade_granular [Microsserviços Escalabilidade Granular]
        S1[Serviço A] -- x3 --> S1
        S2[Serviço B] -- x10 --> S2
    end

Moderno (2024/2026), utilizamos Spring Boot 3.5+ para orquestrar essa nova realidade de forma produtiva.

IMPORTANT

Na Engenharia Premium, não escolhemos microsserviços apenas por “moda”, mas por necessidade de escalabilidade e manutenção independente. O Spring Boot 3.5+ facilita isso ao fornecer starters prontos para esta arquitetura.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️