Avaliação Final

Avaliação integradora que cobre todos os temas do curso — projete uma arquitetura completa, dos requisitos à operação.

Objetivo

Esta avaliação final integra todos os conceitos abordados nas seções anteriores: fundamentos, arquitetura, padrões, fluxos, segurança, observabilidade, implantação e versionamento. Sua tarefa é projetar uma arquitetura completa para um sistema real.

Não existe uma única resposta correta. O que importa é a qualidade do seu raciocínio, a coerência das suas decisões e a sua capacidade de justificar cada escolha.


O projeto: HealthTrack

Descrição

O HealthTrack é uma plataforma de telemedicina que conecta pacientes a médicos para consultas virtuais. A plataforma precisa lidar com:

  • Cadastro e perfis de pacientes e médicos
  • Agenda e consultas com disponibilidade em tempo real
  • Videochamadas para consultas virtuais
  • Histórico clínico com documentos e receitas
  • Pagamentos por consulta com múltiplos métodos
  • Notificações por email, push e SMS
  • Relatórios para administradores e médicos

Requisitos não funcionais

RequisitoValor
Usuários cadastrados500,000
Consultas diárias5,000
Disponibilidade99.95%
Latência da APIp99 < 500ms
Dados sensíveisSim (dados médicos — regulamentação HIPAA/GDPR)
Equipe de desenvolvimento20 pessoas, 4 squads
TimelineMVP em 6 meses

Parte 1: Estilo arquitetônico (Fundamentos)

Perguntas

  1. Qual estilo arquitetônico você escolheria? Monólito, microsserviços ou híbrido?
  2. Como você dividiria o sistema em domínios/serviços?
  3. Como você distribuiria os squads entre os domínios?

Critérios de avaliação

  • Justificativa clara do estilo escolhido
  • Divisão de domínios coerente com o negócio
  • Consideração do tamanho da equipe e da timeline
Guia de referência

Com 20 pessoas e 4 squads, microsserviços é viável, mas não obrigatório. Uma opção pragmática:

Domínios sugeridos:

  • Usuários e Auth (Squad 1): cadastro, perfis, autenticação
  • Consultas e Agenda (Squad 2): disponibilidade, reservas, calendário
  • Consultas e Clínica (Squad 3): videochamadas, histórico, receitas
  • Pagamentos e Notificações (Squad 4): cobranças, emails, push, SMS

Cada squad é dono do seu domínio e pode implantá-lo de forma independente.


Parte 2: Arquitetura de componentes (Arquitetura)

Perguntas

  1. Desenhe um diagrama de alto nível com os componentes principais
  2. Como os serviços se comunicam entre si?
  3. Você precisa de um API Gateway? De um BFF?
  4. Onde fica a lógica das videochamadas?

Critérios de avaliação

  • Diagrama claro com componentes e conexões
  • Justificativa de comunicação sync vs async
  • Consideração de serviços externos (vídeo, pagamentos)
Guia de referência
[App Mobile/Web]


[API Gateway + Auth]

    ├──► [Servicio de Usuarios]     ──► [PostgreSQL]
    ├──► [Servicio de Citas]        ──► [PostgreSQL + Redis]
    ├──► [Servicio de Consultas]    ──► [PostgreSQL + S3]
    ├──► [Servicio de Pagos]        ──► [PostgreSQL]

    └──► [Event Bus (RabbitMQ/Kafka)]

            ├──► [Servicio de Notificaciones]
            └──► [Servicio de Analytics]

[Servicio de Video: Twilio/Agora] ← integración externa
  • Comunicação sync para operações do usuário (criar consulta, ver histórico)
  • Comunicação async para efeitos colaterais (notificações, analytics)
  • Vídeo como serviço externo — não reinventar a roda

Parte 3: Padrões aplicados (Padrões)

Perguntas

  1. Quais padrões de resiliência você aplicaria e onde?
  2. Você usaria Saga para o fluxo de reserva de consulta + pagamento? Orquestrada ou coreografada?
  3. Onde você aplicaria CQRS? É necessário?
  4. Como você garante idempotência nos pagamentos?

Critérios de avaliação

  • Padrões de resiliência aplicados corretamente
  • Justificativa de Saga orquestrada vs coreografada
  • Idempotência em operações críticas
Guia de referência

Resiliência:

  • Circuit breaker nas chamadas ao provedor de vídeo e pagamentos
  • Retry com backoff para notificações
  • Timeout em todas as chamadas entre serviços
  • Bulkhead para isolar o serviço de vídeo do restante

Saga para reserva + pagamento (orquestrada):

  1. Reservar slot na agenda → 2. Processar pagamento → 3. Confirmar consulta
  • Se o pagamento falhar: compensar liberando o slot
  • Orquestrada porque o fluxo é linear e você precisa de controle centralizado

Idempotência nos pagamentos:

  • Idempotency key gerada pelo cliente (appointmentId + timestamp)
  • Verificar antes de processar; se já existir, retornar o resultado anterior

Parte 4: Segurança (Segurança)

Perguntas

  1. Como você gerencia a autenticação e a autorização?
  2. Como você protege os dados médicos sensíveis?
  3. Quais medidas de segurança você aplica em cada camada?
  4. Como você gerencia o consentimento do paciente para acessar o histórico dele?

Critérios de avaliação

  • Autenticação robusta (MFA para médicos)
  • Criptografia de dados sensíveis em repouso e em trânsito
  • Controle de acesso granular (RBAC ou ABAC)
  • Conformidade regulatória considerada
Guia de referência

Autenticação:

  • JWT com refresh tokens
  • MFA obrigatório para médicos
  • OAuth2 para login social de pacientes

Dados sensíveis:

  • Criptografia em repouso (AES-256) para o histórico clínico
  • TLS 1.3 para todo o tráfego
  • Dados médicos em banco de dados separado com acesso restrito
  • Logs de auditoria para todo acesso a dados de pacientes

Controle de acesso:

  • RBAC: papéis de paciente, médico, admin
  • Um médico só pode ver o histórico dos seus pacientes
  • O paciente pode revogar o acesso a qualquer momento
  • Consentimento explícito registrado com timestamp

Parte 5: Observabilidade (Observabilidade)

Perguntas

  1. Quais métricas de negócio e técnicas você coletaria?
  2. Como você implementaria distributed tracing?
  3. Quais alertas são críticos para este sistema?
  4. De qual dashboard a equipe de plantão precisa?

Critérios de avaliação

  • Métricas de negócio relevantes (consultas concluídas, taxa de cancelamento)
  • Tracing end-to-end implementado
  • Alertas priorizados por impacto ao usuário
Guia de referência

Métricas de negócio:

  • Consultas reservadas vs concluídas vs canceladas por dia
  • Tempo médio de espera para conseguir uma consulta
  • Taxa de sucesso dos pagamentos
  • NPS dos pacientes pós-consulta

Métricas técnicas:

  • Latência por serviço e endpoint (p50, p90, p99)
  • Taxa de erros por serviço
  • Disponibilidade do serviço de vídeo
  • Tamanho das filas de mensagens

Alertas críticos:

  • Serviço de vídeo indisponível (impacto direto nas consultas)
  • Taxa de erros de pagamento > 5%
  • Latência p99 > 1s no fluxo de reserva
  • Banco de dados do histórico clínico inacessível

Parte 6: Implantação e operação (Implantação)

Perguntas

  1. Como você implantaria os serviços? Kubernetes, serverless, PaaS?
  2. Qual é a sua estratégia de CI/CD?
  3. Como você gerencia a configuração e os segredos?
  4. Qual é a sua estratégia de escalabilidade?

Critérios de avaliação

  • Estratégia de implantação coerente com a arquitetura
  • CI/CD automatizado com gates de qualidade
  • Segredos gerenciados de forma segura
  • Escalabilidade definida para os componentes críticos

Parte 7: Versionamento (Versionamento)

Perguntas

  1. Como você versiona as APIs entre serviços?
  2. Como você lida com breaking changes?
  3. Qual estratégia de versionamento você usa para os eventos?

Critérios de avaliação

  • Estratégia de versionamento clara (URL, header ou content negotiation)
  • Plano para breaking changes sem downtime
  • Versionamento de eventos considerado

Entrega

Sua avaliação deve incluir:

  1. Documento de arquitetura (1-2 páginas): diagrama de componentes, decisões-chave e justificativas
  2. Diagrama de fluxo para o caso de uso principal: reservar consulta → pagar → realizar consulta
  3. Lista de trade-offs: o que você sacrificou e por quê
  4. Plano de migração: como você chegaria do MVP até a arquitetura completa

Rubrica

CritérioPeso
Coerência entre as decisões25%
Justificativa dos trade-offs25%
Consideração dos requisitos não funcionais20%
Completude (todas as partes cobertas)15%
Clareza de comunicação15%

Reflexão final

Ao concluir esta avaliação, você terá praticado o processo completo de projeto arquitetônico — dos requisitos até a operação. Esse é o mesmo processo que você seguiria em um projeto real.

Lembre-se: a arquitetura não é um documento estático. É um conjunto de decisões que evoluem junto com o sistema, a equipe e o negócio. O importante não é acertar tudo desde o começo, mas ter um processo sólido para tomar decisões e se adaptar quando as coisas mudam.