- 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件のコメント
SQLite や Postgres は10年後も使われていそうですね。Redis もそうだと思っていましたが、最近はどうでしょうね。
最近はRedisの代わりに何を使っていますか?
Hacker Newsの意見
k8s、kubernetes、cloud native、self-hosted、edge-enabled な技術を安価に使えるというアイデアが素晴らしい
SQLite は単一サーバー上で動作し、ほとんどの場合は機能するが、100% 信頼できるわけではないと指摘
スケールやベンチマークを別にすれば、SQS を使う機能テスト/ユニットテスト用モジュールとして有用なツール
ホスティング型のキューシステムを目指しており、SQS より安価でありながら性能を犠牲にしないことを目標としている
AWS API 互換サービスを書くのが好きだとし、Dyna53 プロジェクトに言及
LocalStack を使えば、SQS や多くの AWS サービスをテスト/開発に利用でき、ドキュメントも充実しておりオープンソース
人気サービスに対するシンプルなセルフホスト代替を作るプロジェクトが好き
プロジェクト構成についての簡単な提案:
ElasticMQ に言及し、Docker 環境で SQS をシミュレートするために使っている
外部キーサポートを無効化しているのに、なおデータベーススキーマで使っている理由を質問