Nangoはアメリカに拠点を持つ急成長中のプラットフォームで、ビジネス向けに迅速なAPI統合を提供し、テクノロジー業界の最前線にいます。最初はTemporalを利用してタスク管理を行っていましたが、事業の拡大に伴い、成長を妨げる厳しい課題に直面しました。信頼できないユーザー生成のコードに依存したため、Temporalの重要な機能である失敗後のワークフロー再開が難しくなり、コストの増加やプラットフォームに不慣れなクライアントからの不安が生じました。このため、Nangoはより堅実で使いやすい解決策が必要だと判断し、TemporalからPostgresを使ったカスタムタスクスケジューラーに移行する決断を下しました。これにより、業務を効率化し、ユーザー体験を向上させることを目指しました。
NangoはTemporalの代替案を検討する中で、現行のニーズを満たしつつ将来の要求にも応えられる解決策を探し、徹底した評価を行いました。彼らは、他の技術への依存を最小限にし、さまざまなタスク管理のシナリオに柔軟に対応できることを重視しました。調査を進める中で、Postgres上で永続的なキューを提供するHatchetや、Postgresのタスク管理に優れたPGBossなどの候補がありました。しかし、これらのソリューションには必要な機能が欠けており、不必要な複雑さが増して、効率が低下する可能性があることがわかりました。そこで、NangoはPostgres上に独自のキューイングとスケジューリングのシステムを開発するという大胆な決断を下しました。これにより、既存の知識とリソースを活用して、彼らのニーズに合った解決策を提供できるようになりました。
Postgres上にカスタムキューイングシステムを構築することは、Nangoにとって意外にもスムーズなプロセスとなりました。タスクの実行状態(待機中、実行中、完了)を監視するためのシンプルなタスクテーブルを設計し、効果的なタスク管理と古くなったタスクの特定が容易になりました。また、競合状態を防ぐために、Postgresの高度なロック機能「SELECT ... FOR UPDATE」を導入しました。このような細部への配慮により、タスクは効率的に処理されると同時に、競合なく実行でき、ニーズの変化にも適応できるようになりました。最終的に、この移行は大成功を収め、Nangoはユーザーに対してダウンタイムなしで数百万のタスクをシームレスに実行できるようになりました。この体験は、精巧に設計されたカスタムソリューションがサービスの信頼性を高め、顧客の満足度を向上させ、以前のシステムの欠点を克服することができることを示しています。
Loading...