MTA(Mail Transfer Agent)の刷新プロジェクト

概要

国内最大級のメール配信基盤(日間約7億通規模)における、MTA (Mail Transfer Agent) の刷新プロジェクトに参加しました。C++ で実装された旧システムの保守性・拡張性の限界を解消するため、Java / Go による完全リプレイスを実施。技術選定・アーキテクチャ設計から実装・品質担保まで、中核メンバーとして参画しました。

技術的な課題と解決

  • 保守性・拡張性の向上:旧システム(C++)の複雑な依存関係を解消し、DI(依存性注入)ベースのクラス設計へ刷新。テスタビリティを重視した詳細設計と Parameterized test により、効率的なテスト戦略を確立しました。
  • 非同期処理の最適化:CompletableFuture ベースの非同期アーキテクチャにおいて blocking 処理のボトルネックを特定し、Non-blocking 処理への変更によってスループット向上に貢献しました。
  • マルチ言語での問題解決:Java(メインシステム)に加え、Go(Proxy 層)の調査・改修も担当し、Go ベースのシステムで正常終了しない致命的な問題を根本解決しました。

実績

  • 約1年間の開発期間を経て、リリースを完了
  • Java / Go のハイブリッド構成により、日間約7億通規模のメール処理基盤を構築
  • 設計思想の導入により、チームの開発品質・保守性を向上

詳細

  • 期間: 2023年7月〜2024年9月
  • 担当:新規機能の実装、アーキテクチャ設計、コードレビュー、品質改善などを担当。
  • 関連技術:Java(メイン), Go(Proxy 層)
  • 規模:4名のチーム(プロジェクトリーダー兼開発者1名、開発者3名)。私は開発者として従事。