Pular para conteúdo

Arquitetura

Organização

Aplicação Django monolítica organizada nos apps accounts, core, ativos, localizacao, inventario e integracao_erp. Django Templates entrega a interface Holo; PostgreSQL persiste os dados patrimoniais. Celery executa processamento agendado e RabbitMQ recebe as mensagens; Redis é usado como cache e backend de resultados.

Camada Implementação
Interface Django Templates, JavaScript, QR Code no browser e componentes .holo-*.
Aplicação/domínio Views, formulários e serviços de movimentação, inventário e integração ERP.
Persistência Django ORM e PostgreSQL dedicado ao produto.
API pública Django REST Framework, permissões de model e drf-spectacular; somente leitura.
Processamento Celery Worker + RabbitMQ; Beat agenda verificação de empréstimos vencidos.
Cache Redis para backend de resultados, cache do cliente ERP e consultas rápidas.

Fronteira com o ERP

ERPClient envia GET autenticado ao endpoint de Centros de Custo. Cache Redis reduz chamadas repetidas; falhas recentes usam cache curto para evitar aguardar o timeout a cada tela. Indisponibilidade não deve bloquear o cadastro do ativo sem Centro de Custo.

Consistência do histórico

Ativo.setor e Ativo.responsavel representam o estado corrente, mas o histórico é mantido em MovimentacaoAtivo. O domínio usa MovimentacaoService como porta de escrita para sincronizar estado e evento, evitando atualizações diretas que deixariam a trilha incompleta.

Operação isolada

Produção usa containers e volumes próprios do produto, banco PostgreSQL isolado, rede interna e conexão à rede externa do proxy reverso. Não compartilha o banco do ERP; a integração usa a API publicada por ele.

Referências

  • Settings/rotas: config/settings/ e config/urls.py.
  • Serviços: apps/localizacao/services.py, apps/inventario/services.py, apps/integracao_erp/client.py.
  • DevOps