top of page

Desafios Técnicos para Candidatos

Desafio Java - Sistema de Gestão de Pedidos B2B

Contexto​

Você foi designado para desenvolver um microserviço crítico para um sistema B2B de gestão de pedidos. Este microserviço será responsável por receber, processar e gerenciar pedidos de parceiros comerciais, com potencial para milhares de requisições simultâneas.

 

Requisitos Funcionais

  1. Criar uma API REST para gerenciamento de pedidos com os seguintes endpoints:

    • Cadastro de pedidos

    • Consulta de pedidos (por ID, por período, por status)

    • Atualização de status de pedidos

    • Cancelamento de pedidos

  2. Cada pedido deve conter:

    • ID único

    • ID do parceiro

    • Lista de itens (produto, quantidade, preço unitário)

    • Valor total

    • Status (PENDENTE, APROVADO, EM_PROCESSAMENTO, ENVIADO, ENTREGUE, CANCELADO)

    • Data de criação

    • Data de última atualização

  3. Implementar um sistema de créditos para parceiros:

    • Cada parceiro possui um limite de crédito

    • Ao criar um pedido, o sistema deve verificar se o parceiro possui crédito suficiente

    • Ao aprovar um pedido, o sistema deve debitar o valor do crédito do parceiro

  4. Implementar um mecanismo de notificação para mudanças de status de pedidos (simular integração com sistema de mensageria)

 

Requisitos Técnicos

  • Utilizar Java 17+ e Spring Boot

  • Banco de dados à sua escolha (PostgreSQL ou MongoDB)

  • Documentação da API (Swagger/OpenAPI)

  • Containerização com Docker e docker-compose para execução do projeto

  • Testes automatizados

 

Entrega

  • Código fonte em repositório Git público

  • README com instruções detalhadas para execução do projeto

  • Docker-compose funcional que permita executar a aplicação com um único comando

Observações

  • O projeto deve ser desenvolvido considerando cenários de alta concorrência

  • A solução deve ser escalável e performática

  • Não é necessário desenvolver interface de usuário, apenas a API REST

 

Boa sorte!

Desafio Kotlin - Sistema de Gestão de Créditos para Parceiros

Contexto

Sua missão é desenvolver um microserviço responsável pela gestão de créditos de parceiros em uma plataforma B2B. Este sistema será utilizado por milhares de parceiros simultaneamente para reportar vendas e consumir créditos, sendo crítico para a operação do negócio.

 

Requisitos Funcionais

  1. API REST para gestão de créditos com os seguintes endpoints:

    • Consulta de saldo de créditos por parceiro

    • Adição de créditos para parceiros

    • Consumo de créditos (com validação de saldo)

    • Histórico de transações por parceiro

  2. Sistema de transações com:

    • ID único

    • Tipo (CRÉDITO ou DÉBITO)

    • Valor

    • ID do parceiro

    • Motivo/descrição

    • Data e hora

    • Status (PENDENTE, CONCLUÍDA, FALHA)

  3. Implementar mecanismo de conciliação de transações:

    • Transações podem ficar pendentes por problemas de comunicação

    • O sistema deve ter um processo para verificar e resolver transações pendentes

    • Implementar idempotência para evitar duplicidade de transações

  4. Integração com sistema de notificação:

    • Ao processar transações significativas, notificar um serviço externo (simular com mensageria)

 

Requisitos Técnicos

  • Utilizar Kotlin e Spring Boot

  • Banco de dados à sua escolha (PostgreSQL ou MongoDB)

  • Documentação da API (Swagger/OpenAPI)

  • Containerização com Docker e docker-compose

  • Testes automatizados

 

Entrega

  • Código fonte em repositório Git público

  • README com instruções detalhadas para execução do projeto

  • Docker-compose funcional que permita executar a aplicação com um único comando

 

Observações

  • O sistema deve ser projetado para alta concorrência e evitar race conditions

  • Considere mecanismos de cache para melhorar a performance

  • Implemente tratamento adequado de erros e retry mechanisms

  • Não é necessário desenvolver interface de usuário, apenas a API REST

 

Boa sorte!

Desafio Node.js/TypeScript - Sistema de Orquestração de Eventos B2B

Contexto

Você foi designado para desenvolver um microserviço crítico que atua como orquestrador de eventos em uma plataforma B2B. Este serviço receberá eventos de parceiros comerciais, validará, processará e distribuirá para outros microserviços, lidando com milhares de eventos simultâneos.

 

Requisitos Funcionais

  1. API REST para recebimento e processamento de eventos:

    • Endpoint para receber eventos de parceiros

    • Consulta de status de processamento de eventos

    • Reprocessamento de eventos com falha

    • Estatísticas de processamento

  2. Cada evento deve conter:

    • ID único

    • Tipo de evento (VENDA, DEVOLUÇÃO, ATUALIZAÇÃO_ESTOQUE, etc.)

    • Dados do evento (payload JSON)

    • Origem (ID do parceiro)

    • Timestamp

    • Status de processamento

  3. Implementar fluxo de processamento:

    • Validação do evento (formato, campos obrigatórios, regras de negócio)

    • Enriquecimento de dados (adicionar informações relevantes)

    • Distribuição para serviços downstream (simular com filas de mensagens)

    • Persistência do histórico de processamento

  4. Sistema de retry e dead-letter:

    • Implementar mecanismo de retry para eventos com falha

    • Após N tentativas, mover para uma fila de dead-letter

    • Permitir reprocessamento manual de eventos na dead-letter

Requisitos Técnicos

  • Utilizar Node.js com TypeScript

  • Banco de dados à sua escolha (PostgreSQL ou MongoDB)

  • Documentação da API (Swagger/OpenAPI)

  • Containerização com Docker e docker-compose

  • Testes automatizados

 

Entrega

  • Código fonte em repositório Git público

  • README com instruções detalhadas para execução do projeto

  • Docker-compose funcional que permita executar a aplicação com um único comando

 

Observações

  • O sistema deve ser projetado para alta concorrência

  • Implementar mecanismos de rate limiting para proteger a API

  • Considerar aspectos de observabilidade (logs estruturados, métricas)

  • Implementar idempotência para garantir processamento único de eventos

  • Não é necessário desenvolver interface de usuário, apenas a API REST

 

Boa sorte!

Dicas para se destacar

  • Capriche na documentação e explique suas decisões técnicas.

  • Use testes automatizados para cobrir os principais fluxos.

  • Demonstre preocupação com performance, escalabilidade e segurança.

  • Implemente logs estruturados e trate erros de forma elegante.

  • Seja criativo! Se quiser, adicione features extras e explique no README.

bottom of page