Reserva confirmada antes da inspeção.
Módulo de memória devolvido e recebido no armazém.
Investigar
Do domínio ao código com DDD.
Um módulo de memória devolvido. Um caso fictício.
Pesquisador e arquiteto
em governança de IA
Um sistema e uma linguagem que ajudam pessoas e IA a construir outros sistemas, preservando significado, responsabilidade e evidências.
Ele compra o último módulo de memória.
A loja confirma o pedido.
Mas, antes do envio, o atendimento liga:
“Ainda não podemos enviar.Essa unidade devolvida ainda aguarda inspeção.”

O atendimento abre o BUG-4821. Nossa investigação começa aqui.
Módulo de memória devolvido e recebido no armazém.
Investigar →
LP-2041 está no armazém, livre e com inspeção pendente.
A regra exige apenas presença e ausência de reserva.
A aprovação de qualidade não é verificada.
Estar no armazém basta para voltar à venda?
function podeReservar(unidade) {
return unidade.presente
&& !unidade.reservada;
}
Dados antes da tentativa
podeReservar(unidade) → trueA loja confirma a reserva.
Pseudocódigo da regra encontrada.
“Quando vocês dizem em estoque,
o que isso significa?”
“Está aqui.”
Recebida“Passou na inspeção.”
Aprovada“Pode voltar à venda.”
ComerciávelCada modelo responde por uma decisão.
| Contexto | Pergunta | Linguagem |
|---|---|---|
| Armazém | Onde está a unidade? | Recebimento · localização · custódia |
| Qualidade | A unidade passou na inspeção? | Inspeção · resultado · aprovação |
| Comercialização | Pode voltar à venda e ser reservada? | Comerciabilidade · aprovação · reserva |
| Loja | O que mostramos ao cliente? | Disponibilidade · solicitação de compra |
O que aconteceu com a unidade — e quem reconhece cada fato?
Um modelo explícito dos conceitos, das relações e das restrições de um domínio.
Pessoa · Organização · Cidade
Trabalha em · localizada em · mora em
Quem trabalha: PessoaOnde trabalha: Organização
A seguir, usamos essa lente para examinar LP-2041.
Cada área responde por uma decisão diferente.
O resultado pode ser aprovação ou reprovação.
A situação da unidade pode mudar até a compra.
Com essas distinções, quando podemos autorizar uma nova venda?
“Só podemos reservar uma unidade devolvida se ela estiver aqui, aprovada na inspeção e livre para um pedido.”
O recebimento não libera a revenda. LP-2041 ainda aguarda aprovação na inspeção.
O aggregate reúne o estado e os comportamentos que protegem essa regra.
comerciavel(): boolean {return this.presente&& this.qualidade === "APROVADA"&& this.pedidoAlocado === null;}1 · Presença física é necessária, mas não autoriza a revenda sozinha.
Todas as condições estão satisfeitas.
reservar(pedido: PedidoId) {
if (!this.comerciavel()) {
throw new UnidadeNaoComerciavel();
}
this.pedidoAlocado = pedido;
this.registrarEvento(
new UnidadeReservada(
this.id, pedido
)
);
}Pseudocódigo dentro de UnidadeComerciavel.
Partimos do cenário válido e alteramos um fato por vez.
| Cenário | Reserva |
|---|---|
| Presente + aprovada + livre | Permite |
| Mesmo cenário, mas fisicamente ausente | Recusa |
| Inspeção reprovada | Recusa |
| Unidade já alocada | Recusa |
| LP-2041: inspeção pendente, como no ticket | Recusa |
Obrigado pela atenção.
Vladimir Rondelli
Pesquisador e arquiteto em governança de IA
cyberalchemylab.com