こんにちは、
Wake App Callというモーニングコールのサービスを開発しました。
https://wake-app-call.com
Amazon Connectを用いたモーニングコールサービスです。
どんなサービスなのか
サービス紹介の動画を作りましたので、よろしければご覧ください。
https://www.youtube.com/watch?v=l7f-5ivwSE8
構成について
- サーバーレス
- イベントドリブンアーキテクチャ
基本的にSNS => SQS => Lambdaで処理していく構成です。
- ログ用キュー
- 決済用キュー
などのように処理ごとにSQSを追加していくイメージです。
開発にあたり意識したこと
1. 全てのイベントは再実行可能であること
各イベントは複数回実行されることがあり得ます。
またエラー発生時は再度イベントを発行します。
2. KinesisやDynamoDB Streamはその場で処理せず、いったんSNSに流す
KinesisやDynamoDB StreamはLambdaで受けとって、そこでは処理をせずにそのままSNSに流しています。
- イベントの発行は全てSNSを起点に行いたい
- 処理をSQSキュー毎に分けたい
という理由です。
3. 本当に必要かを考える
- リアルタイムでレスポンスが必要な箇所なのか
- エラー発生時に後続処理を止める必要がある箇所なのか
- 処理の順番を待つ必要がある箇所なのか
- ユーザーが困る問題なのか、運営者が困る問題なのか
4. 早めにリリースする
イベントドリブンアーキテクチャの構成では機能追加の時に、
SQSのキューを新たに追加することで既存処理を変えなくても良いことが多々あります。
限られたリソースの中で時間をかけて完璧なものを作るよりかは、
早めにリリースしてトライアンドエラーを繰り返した方が楽しく良いものが作れると思います。
まとめ
初めてリリースできたサービスなので、大切にしていきたいと思っています。
これからもいろいろな機能をリリース予定です。
今後も楽しんで開発を続けていって、個人開発を盛り上げていきたいです。
Wake App Callをぜひぜひお試しいただけたら幸いです。