Arquitetura para PHP legado
Maybe
Erros e ausência viram estados explícitos, adotados gradualmente nas bordas de sistemas PHP 7.4.
- Status
- implementado
- Commit-fonte
- main
- Licença
- Verificar no repositório antes de reutilizar

Contexto
Sistemas legados misturam null, false, exceções e validações no mesmo fluxo. Maybe explora uma
transição incremental que não exige reescrita: cada camada pode entrar sozinha, começando pela borda
onde dados externos atravessam o sistema.
Forças e restrições
- Compatibilidade com PHP 7.4.
- Adoção gradual em código existente.
- Concorrência por processos com fronteiras de segurança claras.
Decisões
- 01
Erros explícitos
Result e Option tornam falha e ausência parte do contrato.
- 02
Adoção nas bordas
Schema e DTO entram primeiro onde dados externos atravessam o sistema.
- 03
Async como processo
O núcleo continua síncrono; concorrência, timeout e serialização pertencem a uma fronteira própria.
Atributos de qualidade
| Atributo | Abordagem | Evidência |
|---|---|---|
| Compatibilidade | API compatível com PHP 7.4. | Restrição declarada pelo projeto. |
| Segurança | Validação antes de cruzar processos. | Schema, DTO e contratos explícitos. |
| Evolução | Schema → DTO → Result → Option → Async. | Camadas podem ser adotadas incrementalmente. |
Evidências
API pública
Tipos e exemplos versionados no repositório.
Fronteira Async
Serialização, timeout e isolamento são responsabilidades observáveis.
Limites conhecidos
- Async não substitui filas duráveis nem supervisão operacional.
- A aplicação continua responsável por idempotência, recursos e recuperação.
- Licença e commit-fonte aguardam fixação após auditoria.
Mapa arquitetural
- null / false / throw — risco. Semânticas concorrentes no legado.
- Schema + DTO — fronteira. Dados ganham forma na borda.
- Result + Option — decisão. Erro e ausência entram no contrato.
- Async isolado — evidência. Processos com timeout e serialização explícitos.