- 公開日
レボルトのネオバンクのアーキテクチャ
- 著者

- 名前
- AbnAsia.org
- @steven_n_t
Revolutは、2023年時点で3,000万人を超える小売顧客を擁する、イギリスおよびヨーロッパで最大のネオバンクである。

旅行者や海外送金を行う外国人労働者に人気を博したのは、手数料が低く、魅力的な為替レートを提供しているからである。
Revolutは多くの企業が実装に苦労しているイベント駆動型マイクロサービスアーキテクチャを成功裏に構築した。これは試行錯誤の結果であり、モノリシックアーキテクチャから変換され、図に示すように成熟したアーキテクチャとなった。
バックエンドは、イベントを送受信することで通信する多数の独立したマイクロサービスで構成されている。イベントは、Postgres DBである単一のイベントストアに永続化される。イベントストアの情報は、リスク、PnL、不正検知などのさまざまなモジュールによって消費される。
テクノロジースタック
1️⃣ Java、Kotlin(バックエンド)
2️⃣ GCP(パブリッククラウドプロバイダー)
3️⃣ PostgreSQL(ストリーミングをサポートするためにレプリケート)
4️⃣ JetBrains KtorおよびKotlinコルーチン(イベントの送信およびストリーミング)
5️⃣ jOOQ(SQLクエリの記述)
6️⃣ RSocket Reactive Streams
7️⃣ ReactJS(フロントエンド)
イベント駆動型マイクロサービス
1️⃣ マイクロサービスはイベントのやり取りによって通信する(Kotlinコルーチンを使用)。
2️⃣ 送信前に、イベントはPostgres DBのイベントストアテーブルに永続化される。
3️⃣ 受信サービスはイベントを処理するためにonEventハンドラーを実装する。
4️⃣ 調整プロセスは、DBに存在するが配信されていないイベントを配信する。
5️⃣ イベントストアはクエリ、ストリーミング、分析、レポートに使用される。
イベントストリーミング
1️⃣ SingleEventConsumerおよびMultiEventConsumerはクライアントによってイベントを購読するために使用される。
2️⃣ イベントを消費するすべてのアプリケーションはイベントプロセッサに依存する。
3️⃣ イベントプロセッサは購読のイベントを消費者に配信する責任がある。
4️⃣ ストリーミングの実装はスクロール可能なJDBC ResultSet(カーソル)に基づいている。
5️⃣ パフォーマンスを向上させるためにイベントストアの読み取りレプリカが使用される。
データ整合性
☑️ 可能な場合はトランザクションを使用する(システム内の境界があるアクションの場合など)。
☑️ トランザクションが適用できない場合、プラットフォームはジョブベースの調整を実装する(外部APIを呼び出す場合など)。
☑️ Revolutはトランザクションマネージャを使用してトランザクションを開始し、高価なチェックをシステムの外側に移動する。
興味深いことに、彼らはすでに存在していたKafkaを使用しないことを意図的に決定した。主な理由は、メンテナンスと設定の複雑さ、およびおそらく急な学習曲線である。関係データベースに基づく独自のソリューションは、メンテナンス、カスタマイズ、データのクエリが容易である。
日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。
著者
Ai Base Network (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私たちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。
いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

© ABN ASIA