Step 19 · Hands-on lab · Hands-on lab · Lab: Estender o Alembic com um novo collector ou adapter ENPT
Alembic Complete Visual Course

Lab: Estender o Alembic com um novo collector ou adapter

Percorra a adição de um novo tipo de fonte ou adapter de modelo e prove com testes.

Read the plain version, or open the technical layer on any section.
1

Faça o monorepo seu


O Alembic é projetado para ser estendido. Este lab tem duas trilhas:

  • Trilha A — Collector: Adicione um novo tipo de fonte em @alembic/ingestion. Por exemplo, um exportador Notion, um fetcher de transcrição YouTube ou um leitor de feed RSS.
  • Trilha B — Adapter: Adicione um novo adapter de modelo em @alembic/adapters. Por exemplo, um adapter Ollama local ou um novo endpoint OpenAI-compatible.

Em ambas as trilhas você edita o contract, implementa a interface, adiciona testes e executa o comando de verificação.

Pense assim… adicionar um novo tipo de tomada na casa: as regras de fiação permanecem as mesmas, mas o plug muda.

Under the hood

Um collector implementa o contrato de oito fases e retorna um WikiPackage. Um adapter implementa ModelAdapter e é registrado via createAdapterRegistry. Para adapters, adicione o id do modelo e preço em packages/contracts/src/registry.ts. Para collectors, adicione um subcomando CLI em apps/cli/src/args.ts e um runner em commands.ts.

2

In one picture


Track Anew collector Contracttypes + tests Track Bnew adapter
Ambas as trilhas de extensão passam pela camada de contracts e devem incluir testes.
3

In the code


# verifique o monorepo todo após mudanças
pnpm -r typecheck
pnpm -r build
pnpm -w test

# execute apenas o pacote alterado
pnpm --filter @alembic/ingestion test

Implementation notes

Testes para adapters devem afirmar sobre o formato de ModelRunResult e modos de falha, não sobre respostas live. Use nock ou um servidor mock local. Testes para collectors devem afirmar cada fase: preflight, cursor, capture, materialize, validate. O adapter offline em @alembic/adapters é uma boa referência para comportamento determinístico.

4

Try it


Escolha Trilha A ou B. Implemente a versão mínima, adicione um teste e execute a suite do pacote. Depois execute o comando de verificação completo.

Design: Por que um adapter nunca deve lançar exceções?
5

Quick check


Onde você registra um novo id de modelo e preço?