Sobre o projeto
Spectrum é um warehouse de análise de produtos self-hosted projetado como uma alternativa open-source a plataformas comerciais como Amplitude e Mixpanel. O projeto demonstra como uma arquitetura cuidadosa baseada apenas em PostgreSQL pode lidar com a ingestão de eventos, sessionization, análise de funil, retenção de coortes, atribuição de receita e testes A/B sem a necessidade de brokers de mensagens externos ou frameworks de big-data.
O sistema ingere eventos brutos de clickstream através de um endpoint FastAPI, processa-os via uma pipeline ELT idempotente usando claims de lote `FOR UPDATE SKIP LOCKED` e computa constructos analíticos puramente em SQL — incluindo limites de sessão de 30 minutos via window functions e funis de conversão semanais em dimensões de nível de conta. Materialized views servem métricas pré-agregadas para dashboards do Grafana, enquanto a row-level security isola os dados dos tenants.
Padrões arquiteturais principais incluem um design de três schemas separando as camadas de staging, warehouse e analytics; tabelas de fatos com particionamento de intervalo mensal com partition pruning; índices BRIN em timestamps de eventos cronológicos; uma dead-letter queue para payloads malformados; e execução de pipeline segura para concorrência que tolera instâncias de runner simultâneas sem processamento duplicado. O projeto é fornecido com migrações Alembic, exposição de métricas Prometheus, testes de integração que afirmam taxas exatas de funil e isolamento de retenção, e um script de benchmark demonstrando acelerações de partition-pruning.
A implantação baseia-se em containers Podman orquestrando PostgreSQL, o servidor API e Grafana, com um único comando `make demo` provisionando tudo, gerando atividade de usuário simulada, executando a pipeline de transformação e lançando a camada de visualização.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.