User Story
Como operador da plataforma DGB,
Quero que os jobs de Typesense (clusters, trending, engagement) consigam importar o módulo data_platform.typesense no Cloud Composer,
Para que a indexação de busca, cálculo de trending e agregação de engagement voltem a funcionar.
Contexto
As DAGs compute_clusters, compute_trending e aggregate_engagement estão falhando com ModuleNotFoundError desde pelo menos 03/03/2026 (~9 falhas/dia combinadas).
Causa raiz
O código dos jobs em src/data_platform/jobs/typesense/collection_ops.py:10 faz:
from data_platform.typesense import (
get_client,
delete_collection,
list_collections,
COLLECTION_NAME,
)
Este código é deployado como plugin do Airflow em /home/airflow/gcs/plugins/data_platform/jobs/typesense/collection_ops.py. Porém, o módulo data_platform.typesense não está disponível no ambiente do Composer.
Pacotes instalados no Composer (nenhum inclui data_platform)
pypiPackages:
apache-airflow-providers-google: '>=10.14.0'
apache-airflow-providers-postgres: '>=5.10.2'
boto3: '>=1.35.0'
psycopg2-binary: '>=2.9.9'
requests: '>=2.31.0'
sqlalchemy: '>=1.4.52'
O módulo existe localmente
O módulo data_platform/typesense/ existe em src/data_platform/typesense/ com os arquivos:
__init__.py — re-exports de client, collection, indexer, utils
client.py — conexão com Typesense (get_client, wait_for_typesense)
collection.py — schema da collection (COLLECTION_NAME, create_collection)
indexer.py — indexação de documentos
utils.py — utilitários (calculate_published_week)
Erro completo
File "/home/airflow/gcs/plugins/data_platform/jobs/typesense/collection_ops.py", line 10, in <module>
from data_platform.typesense import (
ModuleNotFoundError: No module named 'data_platform.typesense'
DAGs afetadas
| DAG |
Task |
Falhas/dia |
compute_clusters |
find_and_store_clusters |
~4 |
compute_trending |
compute_and_sync_trending |
~3 |
aggregate_engagement |
aggregate_and_sync |
~2 |
Impacto
- Busca no portal pode estar com dados desatualizados (Typesense não sendo sincronizado)
- Trending e clusters não estão sendo calculados
- Agregação de engagement parada
Critérios de Aceite
Arquivos relevantes
src/data_platform/jobs/typesense/collection_ops.py — import que falha
src/data_platform/jobs/typesense/sync_job.py — outro arquivo com mesma dependência
src/data_platform/typesense/ — módulo que precisa estar disponível
- Terraform/config do Composer — onde PyPI packages são definidos
Dependências
- Pode depender de configuração Terraform no repo
infra (PyPI packages do Composer)
User Story
Como operador da plataforma DGB,
Quero que os jobs de Typesense (clusters, trending, engagement) consigam importar o módulo
data_platform.typesenseno Cloud Composer,Para que a indexação de busca, cálculo de trending e agregação de engagement voltem a funcionar.
Contexto
As DAGs
compute_clusters,compute_trendingeaggregate_engagementestão falhando comModuleNotFoundErrordesde pelo menos 03/03/2026 (~9 falhas/dia combinadas).Causa raiz
O código dos jobs em
src/data_platform/jobs/typesense/collection_ops.py:10faz:Este código é deployado como plugin do Airflow em
/home/airflow/gcs/plugins/data_platform/jobs/typesense/collection_ops.py. Porém, o módulodata_platform.typesensenão está disponível no ambiente do Composer.Pacotes instalados no Composer (nenhum inclui data_platform)
O módulo existe localmente
O módulo
data_platform/typesense/existe emsrc/data_platform/typesense/com os arquivos:__init__.py— re-exports de client, collection, indexer, utilsclient.py— conexão com Typesense (get_client,wait_for_typesense)collection.py— schema da collection (COLLECTION_NAME,create_collection)indexer.py— indexação de documentosutils.py— utilitários (calculate_published_week)Erro completo
DAGs afetadas
compute_clustersfind_and_store_clusterscompute_trendingcompute_and_sync_trendingaggregate_engagementaggregate_and_syncImpacto
Critérios de Aceite
data_platform.typesenseestá disponível no ambiente do Cloud Composerdata_platformcomo PyPI package no Composer, OU (b) garantir que o deploy de plugins inclui o módulotypesense/com__init__.pycorreto, OU (c) refatorar imports para não depender do pacote instaladotypesensePython client) também devem estar nos PyPI packages do ComposerArquivos relevantes
src/data_platform/jobs/typesense/collection_ops.py— import que falhasrc/data_platform/jobs/typesense/sync_job.py— outro arquivo com mesma dependênciasrc/data_platform/typesense/— módulo que precisa estar disponívelDependências
infra(PyPI packages do Composer)