📄️ Web server
O pacote colibri-sdk-go fornece uma abstração de um servidor web. "Por baixo do capô", utilizamos o Fiber, mas ele pode ser facilmente substituído através da implementação de um novo container no pacote pkg/web/restserver.
📄️ Cliente HTTP
O RestClient fornece uma interface robusta e simplificada para a realização de requisições HTTP em Go. Ele encapsula funcionalidades essenciais para microsserviços modernos, como circuit breaker, estratégias de retry, suporte a cache e manuseio de diferentes tipos de conteúdo, incluindo multipart/form-data.
📄️ Banco de dados
Este pacote fornece uma camada de abstração robusta para operações com banco de dados SQL, especialmente otimizado para PostgreSQL. Inclui funcionalidades como gerenciamento de transações, migrações, consultas paginadas, cache e suporte a reflection para mapeamento objeto-relacional.
📄️ Cache
O pacote oferece uma implementação robusta de cache utilizando Redis, com suporte a tipos genéricos e TTL (Time To Live) configurável. É especialmente útil para armazenar temporariamente dados frequentemente acessados, reduzindo a carga em outros serviços como o banco de dados.
📄️ Comunicação Assíncrona
Este pacote implementa um sistema de mensageria assíncrona com suporte para múltiplos provedores (AWS SNS/SQS, Google Cloud Pub/Sub e RabbitMQ), abrangendo recursos de produção e consumo de mensagens, observabilidade e tratamento de erros.
📄️ Storage
O pacote de Storage fornece uma camada de abstração para operações de armazenamento em nuvem, com suporte nativo para AWS S3 e Google Cloud Storage (GCS). Ele simplifica a manipulação de arquivos, oferecendo uma interface unificada e monitoramento integrado.
📄️ Observabilidade
O pacote fornece uma camada completa de observabilidade para aplicações, integrando métricas, rastreamento (tracing) e logs. A implementação encapsula o OpenTelemetry, oferecendo recursos para monitoramento de transações, segmentos e erros.
📄️ Autenticação e Autorização
O pacote de contexto de autenticação fornece uma estrutura simples e poderosa para gerenciar informações do usuário autenticado em toda a aplicação. Utilizando o mecanismo de contexto nativo do Go, ele permite armazenar e recuperar detalhes do usuário de forma segura, sendo ideal para aplicações multi-tenant.
📄️ Controle de Transações
Este pacote fornece uma abstração robusta para trabalhar com transações SQL em Go, permitindo a execução segura de múltiplas operações de banco de dados como uma única unidade atômica. O sistema garante a integridade dos dados através do mecanismo de commit (confirmação) apenas se todas as operações forem bem-sucedidas, ou rollback (reversão) automático em caso de qualquer falha.