現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。Backend運営の田中です。Backend#3を開催しましたイベントについてイベントについてご紹介します。Backend#3のテーマは「モバイル決済の裏側」です。昨今、さまざまなモバイル決済が目まぐるしく登場しています。各サービスに共通する設計や、使っている技術の違いなどに興味ある人も多いのでは?と思い、このイベントを企画しました。今回はなんと、Origami、Kyash、メルペイ、PayPayの4社から計5名のエンジニアに登壇していただくという、業界初?の取り組みをさせていただきました。亀井浩明さんトップバッターは株式会社Origamiから亀井さん。今年2月からはエンジニアグループのマネージャをされているそうですが、それまではバックエンドからWebフロントまで、多岐にわたり開発をされていたそうです。モバイル決済サービスのローンチ前からOrigamiに入社されていた亀井さんには、Origamiの使用技術の変遷とその時の苦労話をしていただきました。Origamiがサービスを開始したのは、2015年10月。今でこそモバイル決済は社会に浸透していますが、その当時は浸透しておらず、使用ユーザも使える加盟店も少なかったそうです。決済処理が発生することも少なく、システムのどこで異常がおきているのかもわからなかったため、近くの加盟店に出向き、自ら決済処理を発生させ、動作を確認するといったことがあったそうです。当初は、加盟店のレジ係の人が操作方法を知らないので教えたり、決済処理を行うためのデバイスの電源が入っていなくて、起動するまで店内で2,30分待つ、などといったこともあったそうです。今でこそOrigamiはQR決済が主流ですが、昔はBluetoothを用いた非接触型(iBeacon)の決済方法も採用していました。機種によるBluetooth電波の強さの違いや、端子デバッグ方法の苦労話なども聞かせていただきました。優貴さんKyashからの登壇者は今年2月にKyashに入社された松田優貴さんでした。松田さんは今年2月まで、ヤフーに在籍されていたので、僕の同期のOJT担当だったということもあり、お話を聞くのを楽しみにしていました。松田さんには、前半に現在のKyashのバックエンドシステムの構成を説明していただき、後半では現状のシステムの課題に対する解決策を話していただきました。課題にはマイクロサービス構成にしたことによるコンポーネントの責務多寡の問題や、APIがなんでも知っていて、絶対的な正となってしまう「神格化」などを挙げていました。神格化に対してはCRQSというコマンド責務分離という考え方を取り入れて、それら課題を解決しようと試みているそうです。Directにも取り組まれており、即戦力として活躍されているのを感じました。sushoさんメルペイからは入社2年目のsushoさんに登壇していただきました。sushoさんは社内でもその愛称で呼ばれているそうで、自由な社風を感じました。sushoさんは現在コードペイメントチームに所属されていて、メルペイ決済の処理が開始されてから完了するまでのバックエンドのアーキテクチャを詳細に話していただきました。メルペイのアプリから決済処理が完了されるまでは大きく4つのサービスが関わっており、それぞれを独立したマイクロサービスとして構成しているそうです。マイクロサービスであることの課題として、データの整合性を挙げていました。その課題に対して、リクエストが何度行われても同じ結果を返すようにするという冪等性、タイムアウトなどを検知したら自動に元に戻す仕組み、サービス間の不整合を非同期で検知する仕組み、という3つの取り込みを行い、解決に導いたそうです。それら取り組みを全サービスで実装する手間や、作ったものが期待通りのパフォーマンスをするかという検証が大変といった課題があるそうです。それらを解決するために今後はサービスメッシュを使って、検証したい状況を作りやすくし、テストをしやすい環境を作っていきたいという展望を話してくださりました。一平PayPayからの1人目の登壇者は、2016年にヤフーに入社後、去年からPayPayに出向している正木です。発表の最初の方は株式会社PayPayの概要を話してくれました。スーパーフレックス、外国籍のエンジニア率40%、アジャイル開発など、聞いて驚くことが非常に多かったです。その中でも特に驚いたのはセキュアなデータはヤフーのセキュア環境に保存されているということです。開発リソース以外でもヤフーがPayPayを支えているという事を再認識しました。発表の後半では、正木が現在担当している、PayPayのキャンペーン付与について話してくれました。PayPayでは常に5個以上のキャンペーンが平行して実施されていて、店舗やユーザ属性の条件などを考慮すると40-50のキャンペーンがあるそうです。ユーザの決済1つ1つが、どのキャッシュバックが適用されるか適切に判断し、キャッシュバックされる予定の金額を即時に伝えるための仕組みを話してくれました。それらの処理はユーザの決済処理とは独立に稼働するような設計がされているそうです。登壇していない時は冗談を言って周りの人たちを笑わせ、場を和ませてくれました。そんなHarshはPayPayで決済が行われてからの処理について話してくれました。PayPayのシステムは多くのマイクロサービスで構成されているそうです。マイクロサービスと聞くと、エラー処理が複雑で大変そうというイメージがありますが、分散システムにすることによってそれを回避しているとのことです。メルペイと同じようにPayPayでもマイクロサービスの課題は、データの整合性を保つことだと認識しているそうです。それに対して、サーキットブレーカーという仕組みを導入したり、定期実行する不整合検知バッチを用意しているそうです。会の最後には、登壇してくださった方々と参加者を交え、懇親会を行いました。登壇者の方への技術選定の相談や、マイクロサービスを運用する時の悩みなど、本当にいろいろな話題がそれぞれのテーブルで繰り広げられていました。Backend#3では、「モバイル決済の裏側」というテーマで、モバイル決済サービスを提供する4社から計5人のエンジニアの方に登壇していただきました。各サービス、アプリのUIやビジネス的な観点は違えど、似たようなアーキテクチャでシステムが設計されていると感じました。同じ課題に対して、会社によって異なるアプローチをしている点に面白さを感じました。「アニメーションで処理のイメージが膨らんだ」などの声が多かったです。どの登壇者の方も、発表がすごくお上手で、聞いている人が理解しやすい発表をしてくださったのだなあと思いました。今後もさまざまな会社の課題と解決策を発表する機会を作り、聞きに来てくださった方や登壇してくださった方の新しい学びになるような場を提供していきたいと思いました。JAPAN主催の技術・デザインコミュニティー「Bonfire」では、定期的に勉強会を開催しています。connpassで告知していますので、ぜひご参加ください。本部でヤフーウォレットのバックエンドを開発しています。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。