Glust é um ingestor de logs e traces baseado em OpenTelemetry, desenvolvido em Rust. O projeto tem como objetivo principal o estudo de sistemas de alta performance, concorrência, observabilidade e engenharia de resiliência, utilizando um domínio propositalmente simples para focar nos desafios reais de infraestrutura.
O domínio do projeto é mínimo por design: o foco não está em regras de negócio, mas sim em resistência do sistema, incluindo:
- alta concorrência
- ingestão em alto volume
- controle de latência
- tolerância a falhas
- arquitetura escalável
- engenharia de dados
A complexidade do Glust não está no domínio, mas na resistência do sistema.
O pipeline do Glust é intencionalmente simples:
- Serializar / higienizar pacotes OpenTelemetry (OTLP / Protobuf)
- Persistir os dados de observabilidade
- Expor / apresentar os dados ingeridos
Pipeline conceitual:
OTLP → Adapter → Domain → Storage → Query
O projeto começa com um escopo reduzido para garantir solidez estrutural:
- Ingestão de traces/logs OTLP
- Validação e normalização de dados
- Persistência simples em banco de dados
- Leitura básica para visualização
- Testes de carga e estresse
- Serialização e parsing dos protobufs OTLP
- Validação e higienização dos dados
- Persistência em banco de dados
- Sharding e estratégia de particionamento
- Pipeline assíncrono de ingestão
- Testes de estresse e carga
- Métricas internas (latência, p95, p99, throughput)
- Apresentação e consulta dos dados
- Resiliência (retry, backpressure, limites, filas)
O Glust segue princípios de engenharia de sistemas:
- Hot path não bloqueante
- Backpressure explícito
- Falha rápida (fail fast)
- Domínio mínimo
- Fluxo de dados unidirecional
- Concorrência controlada
- Separação clara entre ingestão, domínio e storage
- Escalabilidade horizontal
- Resiliência acima de abstração
Este projeto existe para estudar, na prática:
- Rust em sistemas concorrentes
- engenharia de ingestão de dados
- sharding e resharding
- ingestão distribuída
- arquitetura de observabilidade
- OpenTelemetry e OTLP
- design de ingestors
- sistemas de alta disponibilidade
- testes de carga
- métricas de latência (p95, p99)
- consistência eventual
- pipelines de dados
Glust = gluttony + rust Um sistema projetado para “consumir” grandes volumes de dados de observabilidade com eficiência e resistência.