Pular para conteúdo

Posicionamento do Produto

O MIDDAG for Moodle é um plugin Moodle com escopo amplo de produto. Ele reúne recursos de gestão, operações pedagógicas, integrações externas, análise de dados e outros módulos de negócio dentro de uma arquitetura unificada.

Internamente, o plugin combina três níveis complementares:

  • Framework interno: núcleo arquitetural que organiza container, adapters, contratos, ciclo de vida, eventos e outras capacidades transversais.
  • Extensions: módulos internos que entregam funcionalidades específicas e podem ser independentes entre si ou depender de outras extensões de forma declarada.
  • Integrações externas: pontos pelos quais plugins de terceiros e outros sistemas podem consumir ou estender contratos e interfaces do MIDDAG.

Por que essa arquitetura existe

O modelo anterior baseado em subplugins do Moodle aumentava acoplamento operacional, exigia instalação e manutenção fragmentadas e limitava a adoção de práticas arquiteturais mais flexíveis.

O modelo atual busca:

  • reduzir dependência estrutural do mecanismo de subplugins do Moodle;
  • centralizar o contato com o Moodle por meio de adapters;
  • permitir evolução mais dinâmica do produto;
  • criar uma base estável para extensões internas e integrações de terceiros;
  • sustentar compatibilidade e manutenção de longo prazo para um produto comercial.

O que "flexibilidade" significa aqui

No MIDDAG, flexibilidade não significa ausência de regra. Significa combinar contratos estáveis com graus diferentes de restrição conforme a camada:

  • Framework: regras mais rígidas, pois define contratos, lifecycle e garantias estruturais.
  • Extensions do ecossistema MIDDAG: seguem o framework como padrão esperado para preservar consistência.
  • Plugins de terceiros: podem integrar com maior liberdade, mas devem receber orientação clara sobre o que é obrigatório, recomendado, parcialmente restrito ou livre.

Essa classificação deve aparecer de forma explícita nos ADRs e na documentação técnica, evitando depender apenas de convenções implícitas.

Papel do núcleo

O núcleo do MIDDAG não existe para concentrar regras de negócio de uma única área. Seu papel é fornecer infraestrutura e mecanismos reutilizáveis para diferentes aplicações dentro do Moodle, como:

  • resolução de dependências e ciclo de vida de serviços;
  • isolamento do Moodle por adapters;
  • modelo de extensões internas;
  • integração entre módulos;
  • rastreabilidade operacional, diagnóstico e auditoria;
  • base estável para APIs e contratos públicos.

Papel das extensions

As extensions são a forma principal de entregar funcionalidades de negócio no MIDDAG. Em vez de instalar vários plugins independentes, o produto concentra essas capacidades em um único plugin com módulos internos ativáveis e evolutivos.

Isso permite:

  • ativar apenas as capacidades necessárias;
  • evoluir funcionalidades sem replicar infraestrutura;
  • compartilhar contratos, eventos e mecanismos comuns;
  • manter maior coerência entre produto, arquitetura e operação.

Escopo desta documentação

As páginas em docs/reference/architecture/* explicam a arquitetura do MIDDAG em linguagem técnica e direta. Os ADRs em docs/specs/adr/* registram decisões estruturais específicas. As páginas de docs/extensions/* descrevem o catálogo funcional das extensões.