13 points par GN⁺ 2024-07-01 | 3 commentaires | Partager sur WhatsApp
  • Un service Drop-in capable de remplacer SQS tel quel, qui améliore fortement l’expérience développeur
  • Fournit une UI fonctionnelle, de la visibilité, du traçage, la planification des messages et la limitation de débit
  • Permet d’exécuter une instance SQS privée sur n’importe quel cloud
  • Déployé sous la forme d’un binaire Go unique, utilisable avec les clients SQS existants
  • L’UI s’exécute sur :3000, le serveur compatible SQS sur :3001
  • Compatible avec les clients SQS de tous les langages
    • Python
      • import boto3  
        # Il suffit de changer endpoint_url  
        sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001";)  
        sqs.send_message(QueueUrl="...", MessageBody="hello world")  
        
      • Fonctionne aussi sans problème avec Celery
      • app = Celery("tasks", broker_url="sqs://...@localhost:3001")  
        

L’avis de GN⁺

  • SmoothMQ étend les fonctionnalités de SQS pour offrir une meilleure expérience aux développeurs
  • La possibilité d’exécuter une instance privée sans dépendre d’un cloud donné offre une grande flexibilité
  • Le fait de pouvoir réutiliser les clients SQS existants réduit le coût de migration
  • L’UI permet de gérer facilement les files et les messages, ce qui améliore l’efficacité opérationnelle
  • Lors de l’introduction d’une nouvelle technologie, il faut examiner attentivement la compatibilité avec les systèmes existants

3 commentaires

 
aer0700 2024-07-02

SQLite et Postgres seront probablement encore utilisés dans 10 ans. J’avais l’impression que ce serait aussi le cas de Redis, mais ces derniers temps, je ne sais plus trop.

 
superwoou 2024-07-02

De nos jours, qu’est-ce qu’on utilise à la place de Redis ?

 
GN⁺ 2024-07-01
Commentaires sur Hacker News
  • L’idée de rendre les technologies k8s, kubernetes, cloud native, self-hosted et edge-enabled accessibles à faible coût est excellente

    • J’ai utilisé rq et minio sur k8s pendant plusieurs années, et récemment je m’intéresse à SQLite comme solution de remplacement
    • Souligne l’importance du cloud personnel et estime qu’il n’est pas approprié de tout faire passer par le cloud public
    • Il est tout à fait possible que des capteurs BTLE communiquent directement avec une Apple Watch
    • Faire transiter cela par le cloud n’apportait aucun avantage, et il faut corriger cela dans la prochaine génération d’outils
  • SQLite fonctionne sur un seul serveur et, même si cela marche dans la plupart des cas, ce n’est pas fiable à 100 %

    • Si le serveur de file d’attente tombe en panne, SQS a de fortes chances de continuer à fonctionner
    • Dans le meilleur des cas, cela peut fonctionner, mais cela n’offrira pas le même niveau de fiabilité que SQS
  • Indépendamment de l’échelle et des benchmarks, c’est un outil utile pour les modules de test fonctionnel/unitaire qui utilisent SQS

  • Le projet vise un système de file d’attente hébergé, moins cher que SQS sans sacrifier les performances

    • Comme Backblaze et Minio ont réussi dans l’écosystème S3, l’objectif est de réussir aussi dans celui des systèmes de file d’attente
  • Aime écrire des services compatibles avec les API AWS et mentionne le projet Dyna53

  • Avec LocalStack, on peut utiliser SQS et de nombreux services AWS pour les tests/le développement ; c’est bien documenté et open source

  • Aime les projets qui créent des alternatives simples à auto-héberger pour des services populaires

    • Cela devrait fonctionner avec Litestream sans problème majeur, et ce serait excellent comme système de file d’attente éphémère sans ajustement du stockage backend
  • Suggestion rapide concernant la structure du projet :

    • Propose de déplacer toutes les structures du répertoire models/ vers le répertoire racine
    • Cela permettrait aux utilisateurs du package d’utiliser des noms courts et propres comme q.Message et q.Queue, tout en évitant les conflits de nom si l’utilisateur possède son propre package models
  • Mentionne ElasticMQ, utilisé pour simuler SQS dans un environnement Docker

  • Demande pourquoi la prise en charge des clés étrangères est désactivée tout en restant utilisée dans le schéma de base de données

    • Le commentaire TODO: check for errors et les parties qui semblent désactiver la vérification des contraintes de clé étrangère donnent hésiter à essayer le projet