Skip to content

[Remoto] Desenvolvedor(a) Java Júnior (Fila de Pedidos) | Confidencial (vaga via Sylision) #1969

Open

Description

@GiovaniPole0

Nossa empresa

Confidencial (vaga via Sylision): a empresa contratante não é nomeada neste anúncio. A seleção é conduzida pela Sylision.

Descrição da vaga

Pedido entra pela API, responde rápido para quem chamou e segue para processamento assíncrono. Do outro lado, consumidores em Java com Spring Boot leem de tópicos do Apache Kafka, avançam a situação do pedido, gravam em PostgreSQL e publicam o evento seguinte. Você vai trabalhar nesses consumidores e no desenho de estados do pedido. Três coisas dominam o dia a dia. Ordem, porque dois eventos do mesmo pedido não podem ser aplicados fora de sequência. Idempotência, porque mensagem se repete e aplicar duas vezes não pode mudar o resultado. E mensagem que não processa de jeito nenhum, que vai para a fila de mensagem morta e precisa de um caminho claro de reprocessamento depois da correção. Também existe a parte visível: endpoint para consultar a situação do pedido e o histórico de transições. Quando alguém pergunta por que um pedido parou, a resposta tem de sair do histórico gravado, não de investigação manual em log espalhado.

  • Implementar consumidores Kafka que avançam a situação do pedido
  • Garantir idempotência do consumo, para mensagem repetida não duplicar efeito
  • Respeitar ordem por chave de pedido e tratar evento que chega adiantado
  • Encaminhar mensagem irrecuperavel para fila de mensagem morta com o motivo
  • Construir a rotina de reprocessamento do que ficou parado
  • Expor consulta de situação e histórico de transições por endpoint REST
  • Escrever teste de consumidor, incluindo mensagem duplicada e fora de ordem

Local

100% remoto, no Brasil

Requisitos

Obrigatórios:

  • Formação em andamento ou concluída em curso de tecnologia, ou projeto próprio publicado com código Java seu
  • Java com orientação a objetos, coleções e tratamento de exceção
  • Noção de Spring Boot
  • SQL de consulta e escrita em banco relacional
  • Entender a diferença entre processar na hora e processar depois, com fila no meio
  • Git no dia a dia

Diferenciais:

  • Já ter usado Kafka, RabbitMQ ou qualquer mensageria, mesmo em estudo
  • Noção de máquina de estados aplicada a pedido ou a processo
  • Docker Compose para subir fila, banco e aplicação localmente
  • Ter escrito teste de integração com dependência em container
  • Curiosidade por entrega no mínimo uma vez e por que isso exige idempotência

Benefícios

  • Ambiente colaborativo, com senso de comunidade e conquistas celebradas em equipe
  • Trabalhe de qualquer lugar, com liberdade e flexibilidade
  • Conexão global: convivência com times de diferentes países e culturas
  • Apoio à saúde física com TotalPass e Mediquo
  • Cuidado com a saúde mental pelo programa Team Care
  • Contratação e jornada definidas com a empresa contratante

Contratação

CLT ou PJ. Faixa salarial: R$ 4.100 a R$ 5.600 por mês.

Como se candidatar

Pela página da vaga: https://www.sylision.com/vagas/desenvolvedor-java-junior-fila-de-pedidos-468?utm_source=github&utm_medium=comunidade&utm_campaign=soujava

Tempo médio de feedbacks

Contato para retorno do processo: giovani.poleto@sylision.com

Esta issue é encerrada quando a vaga fecha ou em até 28 dias.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions