Bonfire Backend #3 に参加①(Origami Pay、Kyash)
Bonfire Backend #3 に参加してきました。
マイクロサービスの製造や、ECサイトのバックエンド側の製造をやってはいましたが、
流行りのCPMやMPMでの決済は関わったことはなかったので非常に楽しかったです。
それにこの唐揚げの山
唐揚げがBonfireしてました!
メモをとったらかなりの量になったので、抜粋して2回に分けて記載していきます。
第1弾は、Origami Pay、Kyashです。
Origami Pay
MPM式でのQRコード決済ができます。
詳細はHP
https://origami.com/origami-pay/
Origami Pay の仕組み
手順としてはこのようになります。
①加盟店で金額を入力してもらい、お支払いコードを発行
②お客様が支払いコードを自分の端末に入力
ところで入力方法は以下の方法があります。
①手入力(カメラが使えないときにも使用できる)
②iBeacon(すでに廃止)
③QRコード
iBeaconは初めて聞いたので調べてみました。
iBeacon
Appleが開発しており、BLE規格で非接触型の決済ができる
Android端末でも使用することができます。
BLE規格は、Bluetooth Low Energyの略語で、
極めて省電力で動作する無線通信の技術。通信速度は低速だが、省電力なので長持ちしやすい
といった特徴を持っております。
ただしデメリットがあって、
・電波を使用して通信を行っている分、受信状況が悪くなりがちで、決済に失敗しやすかった
・受信状況が悪いと、失敗したかどうかの判断をすることが困難になることが多かった
・端末によっては、電波の発信場所が異なるため、店員さんやお客さんにとっても負担があった
といった問題があります。
iBeaconと比べると、QRコードであれば、受信状況の影響もなくなるし、端末による戸惑いも少なくなります。
さらにエラーの判断もしやすいため、Origami Payでは徐々にQRコードに移行し、iBeaconは廃止されていきました。
余談ではありますが、
卓越してくると、肉眼でiBeaconの電波が見えてくるらしいです。
ぜひ見たい方はiBeaconを見えるまで使ってみたください。
Kyash
プリペイド式のVisaカードで、チャージやスマホでリアルタイムで管理したり、
現在開発中(Kyash Direct)だが、企業向けにAPIを開放して、パートナー企業がカード発行や決済などを行うことができるようにしている。
kyash.co
サーバサイド
AWS上で動作し、マイクロサービスをGo言語で実装しています。
マイクロサービス間の通信は同期で行っています。
スマホアプリからの通信と、VisaNetからのリクエストを、AWSのEC2インスタンス経由で受け取って処理を行う形になっています。
Visa決済の仕組み
普段カード会社がやるべき処理を内製して作っています。
例えば仮売り上げ処理や売り上げ確定処理などです。
ちなみにこのメッセージのやり取りはvisa特有の電文で行うそうですが、英語で1000ページはあるそうで、毎日眠気との戦いとおっしゃっていました。
内省したことによる利点
本来なら他社に処理を委託するところを、内製してますので、リアルタイム性が実現できます。
また自動でチャージすることも利点として挙げておりました。
対策
履歴の作成処理の負荷に対してのアプローチ
- CQRSでシステム全体を更新系と参照系で処理を分散する
- それぞれの処理は各サービスで処理し、履歴の検索は参照系の責務にする
といったことがあげられました。
用語
簡単に用語をまとめておきます。
いつかまた記事で掘り下げていきたいと思っております。
CQRS
Command and Query Responsibility Segregation(コマンド クエリ責務分離)の略語です。
コマンド側(更新系)とクエリ側(参照系)で完全に機能を分けてしまい、処理分散を図ってしまおうと。
そもそもコマンド側とクエリ側で求められる要件が異なるので、各々に沿ったアーキテクチャで製造することができます。
Choreography
それぞれのサービスが自立して動作し、あらかじめ定められた他のサービスを呼び出す方式です。
ちなみにそれぞれ自立してますので、結果を返すという概念はありません。
補足
builders con tokyo 2019で詳細な説明をしていただけるそうです。
ちなみに自分は行ってみようかと思っています。(嫁が許せば・・・)
builderscon.io