13 puntos por GN⁺ 2024-07-01 | 3 comentarios | Compartir por WhatsApp
  • Un servicio Drop-in que puede reemplazar SQS directamente y mejora mucho la experiencia de desarrollo
  • Ofrece una UI funcional, visibilidad, trazabilidad, programación de mensajes y limitación de velocidad
  • Permite ejecutar una instancia privada de SQS en cualquier nube
  • Se despliega como un único binario de Go y puede usarse desde clientes SQS existentes
  • La UI corre en :3000 y el servidor compatible con SQS en :3001
  • Compatible con clientes SQS de todos los lenguajes
    • Python
      • import boto3  
        # Solo hay que cambiar endpoint_url  
        sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001";)  
        sqs.send_message(QueueUrl="...", MessageBody="hello world")  
        
      • También funciona sin problemas con Celery
      • app = Celery("tasks", broker_url="sqs://...@localhost:3001")  
        

Opinión de GN⁺

  • SmoothMQ amplía las capacidades de SQS y ofrece una mejor experiencia para desarrolladores
  • Al poder ejecutar una instancia privada sin depender de la nube, ofrece mayor flexibilidad
  • Como se pueden seguir usando los clientes SQS existentes, el costo de migración es bajo
  • La UI facilita la administración de colas y mensajes, lo que mejora la eficiencia operativa
  • Al adoptar una nueva tecnología, hay que considerar bien la compatibilidad con los sistemas existentes

3 comentarios

 
aer0700 2024-07-02

Parece que SQLite y Postgres se seguirán usando dentro de 10 años. También pensaba lo mismo de Redis, pero últimamente ya no estoy tan seguro.

 
superwoou 2024-07-02

¿Qué se usa estos días en lugar de Redis?

 
GN⁺ 2024-07-01
Opiniones de Hacker News
  • La idea de poder usar tecnologías como k8s, kubernetes, cloud native, self-hosted y edge-enabled a bajo costo es excelente

    • He usado rq y minio en k8s durante varios años, y recientemente he estado prestando atención a SQLite como alternativa
    • Se enfatiza la importancia de la nube personal, y se considera que no es adecuado resolver tantas cosas en la nube pública
    • Es perfectamente posible que los sensores BTLE se comuniquen directamente con el Apple Watch
    • Pasar por la nube no aportaba beneficios, y se sostiene que esto debe corregirse en las herramientas de próxima generación
  • Se señala que SQLite corre en un solo servidor y, aunque funciona en la mayoría de los casos, no puede considerarse 100% confiable

    • Si el servidor de colas falla, es muy probable que SQS siga funcionando
    • En el mejor de los casos puede funcionar, pero no ofrecerá la misma confiabilidad que SQS
  • Dejando de lado la escala y los benchmarks, es una herramienta útil para módulos de pruebas funcionales o unitarias que usan SQS

  • Apunta a un sistema de colas hospedado, con la meta de ser más barato que SQS sin sacrificar rendimiento

    • Así como Backblaze y Minio tuvieron éxito en el espacio de S3, se busca lograr lo mismo en sistemas de colas
  • Le gusta escribir servicios compatibles con la API de AWS, y menciona el proyecto Dyna53

  • Con LocalStack se puede usar SQS y muchos servicios de AWS para pruebas y desarrollo; está bien documentado y es de código abierto

  • Le gustan los proyectos que crean alternativas simples autohospedadas para servicios populares

    • Se espera que funcione con Litestream sin mayores problemas, y que sea excelente como sistema de colas temporal sin necesidad de ajustar el almacenamiento backend
  • Sugerencia rápida sobre la estructura del proyecto:

    • Propone mover todas las estructuras del directorio models/ al directorio raíz
    • Eso permitiría a los usuarios del paquete usar nombres cortos y limpios como q.Message y q.Queue, además de evitar conflictos de nombres si el usuario ya tiene su propio paquete "models"
  • Menciona ElasticMQ, que usa para simular SQS en un entorno Docker

  • Pregunta por qué se desactiva el soporte de claves foráneas y aun así se sigue usando en el esquema de la base de datos

    • El comentario "TODO: check for errors" y las partes que parecen desactivar la verificación de restricciones de claves foráneas hacen que dude en probarlo