私はこのプロジェクトのコアになるマイクロサービス群と管理画面の開発に携わりました。
コアマイクロサービスはEventSoucingとDDDを中心に設計をしてclean architectureとCQRSで実装するといったかなり挑戦的な開発をしました。
アプリケーションに求められる機能はカード発行、決済、残高管理、精算というどれをとっても失敗のできないものでした。
EventSoucingのコアになるようなフレームワークからほぼフルスクラッチな攻めた状況で
いかに事故を減らすか?事故が起きたときはどうリカバリするか?を常に考える経験は他ではできない刺激がありました。
カードネットワークや、カード印刷会社、入金等の多くの外部接続がコアドメインを侵食しないような設計やカード利用時の様々な検証、マイクロサービス間のトランザクションと難しい実装をしてきました。
そんなかでチームメイトとの要件を噛み砕き、ユビキタス言語を見つけアプリケーションのコードへ反映していく開発はとても楽しいものでした。
また管理画面では要件定義からElmを使う意思決定などすべてに関わる形で参加しました。
クレジットカードを扱う業務が進められることが要件になる管理画面は、管理画面と一言聞くと顧客に提供されるアプリケーションに比べて
求められるものが高度でない印象がありますが
金銭を扱う管理画面故に非常に緊張感のある開発をしました。