Sobre o projeto

AetherGrid é um orquestrador distribuído de cargas de trabalho de IA que agenda workloads entre nós de computação com base em requisitos e restrições de recursos, gerenciando o ciclo de vida completo do job, de enfileirado a agendado, em execução, concluído, falho, repetido e cancelado. É construído em torno de Domain-Driven Design estrito, com um núcleo de domínio desacoplado, sem dependências de infraestrutura, um loop de reconciliação orientado a eventos e posse de execução baseada em lease. A motivação declarada do projeto é abordar os problemas difíceis de agendamento em escala: posse exclusiva de execução sob falha, reconciliação após falhas parciais e limites de recursos impostos. A camada de domínio (agregados Job, Node, Worker, Lease, Event, ApiKey) contém o algoritmo de agendamento e a máquina de estados do ciclo de vida como Python puro, sem importações de FastAPI ou psycopg. Serviços de aplicação coordenam objetos de domínio e repositórios, enquanto a infraestrutura fornece implementações PostgreSQL para cada repositório usando psycopg bruto, em vez de um ORM, além de implementações SQLite para alguns repositórios no desenvolvimento local. A camada de apresentação é FastAPI, e o frontend é React com TypeScript. As capacidades descritas incluem autenticação por chave de API que protege todas as rotas (incluindo o endpoint de emissão de chaves, com a primeira chave criada apenas via script local com acesso direto ao banco de dados), transições explícitas de estado de job, incluindo cancelamento de um job em execução via estado CANCELLING, páginas de histórico do ciclo de vida por job, um alocador best-fit consciente de restrições, drenagem de nós, registro de workers e heartbeats, um agente worker autônomo que faz polling via HTTP e executa jobs como subprocessos reais, posse de execução baseada em lease com renovação contínua, confirmação explícita do início da execução, execução real de subprocessos com desligamento em dois estágios (SIGTERM e depois SIGKILL), rastreamento de liveness dos nós, reconciliação com retries limitados, registro de eventos de domínio, feed de eventos ao vivo em todo o cluster, visibilidade dos workers e um painel com várias páginas. O README enfatiza os registros de decisões de engenharia: 39 ADRs documentados em /docs/adr, cobrindo tópicos como o loop de reconciliação, recuperação de jobs e reparo de reconciliação, execução real de jobs, renovação contínua de lease, autenticação por chave de API, posse do domínio sobre a política de agendamento, o agente worker autônomo, cancelamento via renovação de lease, registro idempotente de workers, recuperação de jobs abandonados durante o cancelamento, movendo a execução do tick do cluster para fora do event loop, persistindo transições RUNNING e várias correções de fencing de lease por identidade do lease, em vez da identidade do worker. O README afirma 347 testes nas camadas de domínio, aplicação, infraestrutura e API, incluindo testes de contrato que provam que as implementações de repositório se comportam de forma idêntica. O projeto inclui uma demo ao vivo implantada no Render com Postgres real, autenticação real e endpoints protegidos por chave de API. É licenciado sob MIT e usa Python 3.12, FastAPI, PostgreSQL, React/TypeScript e Docker Compose.