Voltar para Projetos Destaques

    Projeto Impressão

    O Projeto Impressão é um serviço de impressão sob demanda embutido no site da equipe. O visitante abre o site, envia um ou mais PDFs, escolhe as opções, paga por PIX e recebe um protocolo enquanto isso, no laboratório, a HP Laser imprime o documento sozinha e a equipe só precisa entregar as folhas.

    O desafio central foi de arquitetura: o site roda com funções com timeout de 10s e sem armazenamento, a impressão física acontece numa única máquina na faculdade, e o dinheiro real envolvido exige que ninguém consiga falsificar o preço nem fazer o mesmo pedido imprimir duas vezes.

    A solução são quatro subsistemas independentes checkout no navegador, pagamento, armazenamento e um worker na sede que nunca se chamam diretamente: eles se coordenam apenas por uma coluna de status no banco. O PDF vai direto do navegador para o Storage.

    Participantes

    Foto de Filipe Ernesto
    Filipe Ernesto
    Totem de impressão
    Impressora da sede
    Retirada das impressões

    Visão geral

    A feature é composta por quatro subsistemas que rodam em três ambientes com níveis de confiança diferentes: o navegador do cliente (não confiável), hospedagem do site (confiável, mas sem estado e efêmera) e a máquina da sede (confiável e com estado físico).

    Nenhum deles conhece os outros. A única fonte da verdade é a coluna fila_impressao.status no banco de dados: o checkout cria a linha, o webhook do pagamento a promove para PAGO, o worker a move para IMPRIMINDO e finaliza em IMPRESSO. Entender essa máquina de estados é entender o sistema inteiro.

    O princípio central é esse: os subsistemas se coordenam só pela máquina de estados de status e o PDF nunca passa pela hospegam, indo direto do navegador para o Storage do banco de dados.