13 ポイント 投稿者 GN⁺ 2024-07-01 | 3件のコメント | WhatsAppで共有
  • SQSをそのまま置き換え可能なDrop-inサービスで、開発者体験を大きく向上させる
  • 機能的なUI、可視性、トレーシング、メッセージスケジューリング、レート制限機能を提供する
  • あらゆるクラウドでプライベートなSQSインスタンスを実行できる
  • 単一のGoバイナリとしてデプロイされ、既存のSQSクライアントから利用可能
  • UIは :3000 で、SQS互換サーバーは :3001 で実行される
  • すべての言語のSQSクライアントと互換性がある
    • Python
      • import boto3  
        # endpoint_urlだけ変更すればよい  
        sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001";)  
        sqs.send_message(QueueUrl="...", MessageBody="hello world")  
        
      • Celeryともスムーズに動作する
      • app = Celery("tasks", broker_url="sqs://...@localhost:3001")  
        

GN⁺の見解

  • SmoothMQはSQSの機能を拡張し、開発者により良い体験を提供する
  • クラウドに依存せずプライベートインスタンスを実行できるため、柔軟性が高い
  • 既存のSQSクライアントをそのまま使えるため、移行コストが低い
  • UIを通じてキューとメッセージを簡単に管理でき、運用効率が高い
  • 新しい技術を導入する際は、既存システムとの互換性を十分に考慮する必要がある

3件のコメント

 
aer0700 2024-07-02

SQLite や Postgres は10年後も使われていそうですね。Redis もそうだと思っていましたが、最近はどうでしょうね。

 
superwoou 2024-07-02

最近はRedisの代わりに何を使っていますか?

 
GN⁺ 2024-07-01
Hacker Newsの意見
  • k8s、kubernetes、cloud native、self-hosted、edge-enabled な技術を安価に使えるというアイデアが素晴らしい

    • k8s 上で rq と minio を数年間使ってきており、最近は代替として SQLite に注目している
    • 個人クラウドの重要性を強調し、パブリッククラウドで多くを処理するのは適切ではないと考えている
    • BTLE センサーが Apple Watch と直接通信することは十分可能
    • クラウドを経由することにメリットはなく、次世代ツールではこれを修正すべきだと主張している
  • SQLite は単一サーバー上で動作し、ほとんどの場合は機能するが、100% 信頼できるわけではないと指摘

    • キューサーバーがクラッシュした場合でも、SQS は動作し続ける可能性が高い
    • 最良のケースでは動作するかもしれないが、SQS ほどの信頼性は提供しないだろう
  • スケールやベンチマークを別にすれば、SQS を使う機能テスト/ユニットテスト用モジュールとして有用なツール

  • ホスティング型のキューシステムを目指しており、SQS より安価でありながら性能を犠牲にしないことを目標としている

    • Backblaze と Minio が S3 の領域で成功したように、キューシステムでも成功を目指している
  • AWS API 互換サービスを書くのが好きだとし、Dyna53 プロジェクトに言及

  • LocalStack を使えば、SQS や多くの AWS サービスをテスト/開発に利用でき、ドキュメントも充実しておりオープンソース

  • 人気サービスに対するシンプルなセルフホスト代替を作るプロジェクトが好き

    • Litestream とも大きな問題なく動作すると予想され、バックエンドストレージの調整なしで一時的なキューシステムとして優れているだろう
  • プロジェクト構成についての簡単な提案:

    • models/ ディレクトリ内のすべての構造体をルートディレクトリへ移すことを提案
    • そうすることで、パッケージ利用者は q.Message や q.Queue のような短くてすっきりした名前を使え、利用者が独自の "models" パッケージを持っている場合の名前衝突も避けられる
  • ElasticMQ に言及し、Docker 環境で SQS をシミュレートするために使っている

  • 外部キーサポートを無効化しているのに、なおデータベーススキーマで使っている理由を質問

    • "TODO: check for errors" というコメントや、外部キー制約のチェックを無効化しているように見える箇所が、試してみるのをためらわせる