13 pontos por GN⁺ 2024-07-01 | 3 comentários | Compartilhar no WhatsApp
  • Um serviço drop-in que pode substituir o SQS diretamente, melhorando bastante a experiência do desenvolvedor
  • Oferece UI funcional, visibilidade, rastreamento, agendamento de mensagens e limitação de taxa
  • É possível executar uma instância privada de SQS em qualquer nuvem
  • É distribuído como um único binário Go e pode ser usado com clientes SQS existentes
  • A UI roda em :3000, e o servidor compatível com SQS roda em :3001
  • Compatível com clientes SQS de todas as linguagens
    • Python
      • import boto3  
        # basta mudar apenas o endpoint_url  
        sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001";)  
        sqs.send_message(QueueUrl="...", MessageBody="hello world")  
        
      • Também funciona perfeitamente com Celery
      • app = Celery("tasks", broker_url="sqs://...@localhost:3001")  
        

Opinião do GN⁺

  • O SmoothMQ expande os recursos do SQS e oferece uma experiência melhor para desenvolvedores
  • Como é possível executar uma instância privada sem depender de uma nuvem específica, ele oferece alta flexibilidade
  • Como os clientes SQS existentes podem ser usados sem alterações, o custo de migração é baixo
  • A UI facilita o gerenciamento de filas e mensagens, aumentando a eficiência operacional
  • Ao adotar uma nova tecnologia, é preciso considerar cuidadosamente a compatibilidade com os sistemas existentes

3 comentários

 
aer0700 2024-07-02

Parece que SQLite e Postgres ainda vão ser usados daqui a 10 anos. Eu achava que o mesmo valeria para o Redis, mas hoje em dia já não sei.

 
superwoou 2024-07-02

Hoje em dia, o que estão usando no lugar do Redis?

 
GN⁺ 2024-07-01
Opiniões no Hacker News
  • A ideia de permitir o uso barato de tecnologias como k8s, kubernetes, cloud native, self-hosted e edge-enabled é excelente

    • Usei rq e minio no k8s por vários anos e, recentemente, passei a observar o SQLite como alternativa
    • Enfatiza a importância da nuvem pessoal e considera inadequado processar tantas coisas em nuvens públicas
    • Sensores BTLE podem perfeitamente se comunicar diretamente com o Apple Watch
    • Passar pela nuvem não trouxe vantagens, e isso precisa ser corrigido nas ferramentas da próxima geração
  • Aponta que o SQLite roda em um único servidor e, embora funcione na maioria dos casos, não é 100% confiável

    • Se o servidor da fila travar, é bem provável que o SQS continue funcionando
    • No melhor cenário, pode funcionar, mas não oferecerá o mesmo nível de confiabilidade do SQS
  • Tirando a questão de escala e benchmarks, é uma ferramenta útil para módulos de teste funcional/unitário que usam SQS

  • O objetivo é criar um sistema de filas hospedado, mais barato que o SQS sem sacrificar desempenho

    • Assim como Backblaze e Minio tiveram sucesso no espaço do S3, a meta é ter sucesso também em sistemas de filas
  • Gosta de criar serviços compatíveis com a API da AWS e menciona o projeto Dyna53

  • Com o LocalStack, dá para usar o SQS e muitos serviços da AWS em testes/desenvolvimento; é bem documentado e open source

  • Gosta de projetos que criam alternativas simples de self-hosting para serviços populares

    • Deve funcionar com o Litestream sem grandes problemas e seria excelente como sistema de filas temporário sem exigir ajustes no armazenamento de backend
  • Sugestão rápida sobre a estrutura do projeto:

    • Sugere mover todas as structs do diretório models/ para o diretório raiz
    • Isso permite que usuários do pacote usem nomes curtos e limpos como q.Message e q.Queue, além de evitar conflitos caso o usuário já tenha seu próprio pacote "models"
  • Menciona o ElasticMQ, que usa para simular o SQS em ambientes Docker

  • Pergunta por que o suporte a chaves estrangeiras está desativado, embora ainda seja usado no esquema do banco de dados

    • O comentário "TODO: check for errors" e o trecho que aparentemente desativa a verificação de restrições de chave estrangeira fazem hesitar em testar