Crie um sistema de gerenciamento de inventário orientado por eventos que use o MongoDB Atlas para permitir análises em tempo real, automação e visibilidade de inventário.
Casos de uso: Catálogo, Análise
Setores: Indústria
Produtos: Change Streams do MongoDB, Charts, Atlas Search, MongoDB Atlas Triggers
Parceiros: Next.js
Visão Geral da Solução
No cenário empresarial concorrido da produção, é crucial ter o estoque certo de produtos no lugar certo, na hora certa. O estoque insuficiente leva a interrupções operacionais e oportunidades perdidas. O excesso de estoque aumenta os custos e os riscos associados ao armazenamento. Empresa de todos os tamanhos tem dificuldade em gerenciar estoques.
Soluções, como uma única visualização de estoque, análise em tempo real e arquiteturas orientadas a eventos, podem ajudar as empresas a superar esses desafios e melhorar o gerenciamento de estoque.
Este guia aborda o processo de criação de um sistema de gerenciamento de estoque personalizado para diversos setores, como o de produção.
Gerenciamento de estoque na indús
As cadeias de suprimentos de produção moderna são sistemas complexos e interconectados. Cadeias de suprimentos eficientes podem controlar os custos operacionais e garantir a entrega pontual aos clientes. A otimização e o gerenciamento de estoque são componentes-chave para alcançar esses objetivos. Embora a manutenção de níveis de estoque mais altos permita que os fornecedores gerenciem flutuações inesperadas na demanda, eles têm custos mais altos de manutenção de estoque que podem ser repassados aos clientes. Assim, todos os atores da cadeia de suprimentos se esforçam para atingir um equilíbrio entre os níveis de estoque para maximizar a lucratividade e a vantagem comparativa no mercado. O gerenciamento eficaz de estoques reduz o risco do efeito chicote, no qual solicitações inesperadas podem interromper os custos e o desempenho da cadeia de suprimentos.
Um exemplo significativo de desafios de gerenciamento de estoque na produção envolve o excesso de estoque. Cerca de 8% do estoque excedente globalmente acabará sendo descartado, com aproximadamente US$163 bilhões em estoque descartados todos os anos. Para os fabricantes, o gerenciamento e a otimização dos níveis de estoque começam com a manutenção de uma visão precisa e em tempo real dos níveis de estoque em várias plantas, armazéns e fornecedores. Essa visibilidade é essencial porque é impossível otimizar sem visibilidade dos níveis de estoque atuais.
A integração de dados em tempo real ajuda os fabricantes a rastrear os movimento de estoque e otimizar os níveis de estoque, mas também é essencial para a automação. Alertas automatizados e gatilhos de fluxo de trabalho mantêm os níveis de estoque sem supervisão manual constante. Essa automação melhora a precisão e permite que os fabricantes respondam rapidamente a mudanças nas necessidades de produção ou interrupções na cadeia de suprimentos, mantendo uma operação sem problemas.
Figura 1. Visão geral do gerenciamento de estoque
Nesse sistema, o MongoDB ajuda as empresas a melhorar a qualidade do serviço, a eficiência da força de trabalho e otimizar o gerenciamento de estoque, permitindo uma visão única do estoque, arquiteturas orientadas a eventos e análises em tempo real.
Esses recursos lançam as bases para outros cenários avançados, como:
Integração de tags IoT e Tag ID
Previsões IA/ML para uma predição precisa da demanda
Logística distribuída
Arquiteturas de referência
A solução de gerenciamento de inventário aproveita um aplicação Next.js perfeitamente integrado ao MongoDB Atlas, fornecendo um backend flexível e escalável, conforme mostrado na figura 2.
A solução utiliza os seguintes componentes:
O MongoDB Atlas armazena quatro collections de
productstransactionschaves:,,userslocationse. Essas collections gerenciam o estoque, processam transações e rastreiam dados de usuário e localização.As operaçõescompatíveis com ACID garantem a consistência e a integridade dos dados, especialmente durante as alterações no nível de estoque devido a transações. As collections
productsetransactionsrecebem atualizações para manter a confiabilidade e a consistência em todo o sistema.O aplicação se conecta ao MongoDB por meio do driver MongoDB Node.js
O Atlas Search aprimora os recursos de pesquisa dos aplicativos, habilitando recursos avançados de pesquisa de texto completo. Isso permite que os usuários executem queries complexas, como pesquisar por categoria de produto ou aplicar filtros de faceta.
Os Atlas Triggers automatizam a lógica de backend executando funções em resposta a alterações no banco de dados, como a reordenação automática do estoque quando o estoque fica abaixo de um determinado limite.
Os Change Streams atuam como ouvintes em tempo real, detectando alterações no banco de dados e enviando atualizações para o aplicação. Isso permite que alertas em tempo real, como notificações de estoque baixo, sejam enviados aos gerentes de estoque.
OAtlas Charts fornece uma ferramenta de visualização para análise em tempo real, permitindo que os usuários criem gráficos e painéis interativos diretamente dos dados do MongoDB. Isso permite que os tomadores de decisão acompanhem as principais métricas, como níveis de estoque e tendências de vendas, em tempo real.
As queries da analítica de isolamento do volume de trabalho são executadas em um nó dedicado, o que garante que o desempenho operacional não seja afetado.
Essa arquitetura coesa oferece suporte a interações de dados em tempo real e automatiza tarefas importantes para simplificar processos. Ele permite que o aplicação Next.js forneça uma experiência de usuário responsiva e dinâmica, baseada nos robustos recursos de gerenciamento de dados do MongoDB.
Por meio desta integração, a solução equilibra de forma eficaz o desempenho, a automação e a escalabilidade, tornando-se ideal para os desafios modernos no gerenciamento de estoque.
Arquitetura com MongoDB
Figura 2. Arquitetura do sistema de gerenciamento de inventário usando MongoDB Atlas e Next.js
Abordagem do modelo de dados
O sistema de gerenciamento de inventário armazena dados em quatro collections: products, transactions, users e locations. Essas coleções representam, respectivamente, movimentação de estoque e de entrada e saída que afetam os níveis de estoque, os usuários do aplicação e os locais atendidos pelo sistema.
O que diferencia o modelo de dados de documento dos modelos tabulares tradicionais é sua notável flexibilidade. Com uma abordagem tabular, obter uma visão geral abrangente do seu inventário normalmente envolveria junções complexas em várias tabelas. Com o modelo de documento do MongoDB, essa complexidade é eliminada.
Figura 3. Equivalente da coleção de produtos em uma configuração tabular
A coleção transactions usa o padrão Referência Estendida para referenciar itens. Como tal, o documento de transação inclui o campo product.id para referência interna e o product.name. Esse padrão permite que a interface do usuário exiba informações relevantes para o usuário sem usar queries adicionais ou junções na coleção products.
A collection products contém o que exigiria 10 tabelas separadas em um banco de dados relacional. Os documentos individuais incluem:
Arrays incorporadas para variantes de produto, permitindo que diferentes configurações do mesmo produto sejam armazenadas juntas.
Informações de localização e estoque do produto, que normalmente exigiriam tabelas adicionais em um banco de dados relacional.
Essa flexibilidade fornece um design mais intuitivo, otimiza o acesso aos dados e garante que os dados relacionados sejam armazenados juntos.
figura 4. Representação de como documentos e arrays complexos são incorporados ao documento
Aqui está um exemplo de um documento de transação :
{ "type": "inbound", "location": { "origin": { "type": "warehouse" }, "destination": { "type": "factory", "id": { "$oid": "65c63cb61526ffd3415fadbd" }, "name": "Bogatell Factory" } }, "placement_timestamp": { "$date": "2024-04-08T15:13:58.822Z" }, "items": [ { "sku": "CT001-PT-MDB0001", "name": "Programmable Thermostats", "unit": "pieces", "delivery_time": { "amount": 3, "unit": "seconds" }, "status": [ { "name": "placed", "update_timestamp": { "$date": "2024-04-08T15:13:58.822Z" } }, { "name": "arrived", "update_timestamp": { "$date": "2024-04-08T15:14:03.741Z" } } ], "amount": 15, "product": { "id": { "$oid": "65cce1a4ccdfb7402dbb4db4" }, "name": "Controls and Thermostats", "image": { "url": "/images/products/thermostats.png" } } } ], "automatic": true, "transaction_number": 133 }
Construir a solução
Para replicar esta solução, você precisa configurar o MongoDB Atlas e configurar seu aplicação. Para obter instruções detalhadas, consulte o repositório do Github. A página do Github orienta você nas seguintes etapas:
Adicionar o trigger de reposição automática
Crie um trigger de banco de dados) que emita automaticamente um pedido de substituição quando os níveis de estoque ficam abaixo de um limite definido. Para fins de demonstração, configure um segundo trigger para simular o progresso de um pedido, da colocação ao processamento.
Habilitar a pesquisa de texto completo e as facetas de filtro
Configure índices de pesquisa para pesquisa de texto completo e filtre facetas nas coleções de produtos e transações.
Configurar análises em tempo real com o Atlas Charts
Melhore a capacidade de visualização e análise do seu aplicativo com o Atlas Charts. Crie análises em tempo real e gráficos personalizados com base nas suas preferências.
Configure o frontend do seu aplicativo
Clone o repositório do Github em sua máquina local, atualize as variáveis de ambiente com seus próprios valores, instale as dependências e execute o aplicativo localmente em http://localhost:3000.
Principais Aprendizados
Esta solução destaca os seguintes recursos:
Alertas em tempo real: implemente alertas de baixo estoque em tempo real no seu frontend usando o Change Streams.
Automação de fluxo de trabalho: use triggers de banco de dados para automatizar os fluxos de trabalho de reposição de estoque.
Análise em tempo real: mantenha seus dados atualizados, analise tendências e tome decisões embasadas e oportunas com o Atlas Charts.
Visão única do inventário: aproveite a flexibilidade do document model para criar uma visão única e abrangente do inventário.
Explore, ajuste e aprimore seu sistema de gerenciamento de inventário para atender às suas próprias necessidades.
Autor(a)
Dr. Humza Akhtar, MongoDB
Ramiro Pinto Prieto, MongoDB
Tamar Alphaidze, MongoDB