2022.02.16

MuleSoft Hackathon 2021において世界2位!

はじめに

みなさん、こんにちは!

前回に引き続き、テラスカイ西日本チームでMuleSoft Hackathon 2021に参加しました。前回は世界各国から参加したチームの中で6位でしたが、今回は2位に入賞することができました!

今大会では、言語の壁に関係なく、いろいろな人が俳句を作って楽しめるアプリを作成しました。
本記事では、このアプリについてご紹介します。

みんなで俳句を作れるアプリを作成

コロナ禍で簡単に旅行することが難しい中で、俳句を愛する人や、日本文化を愛する人たちが簡単に俳句を作れたらという思いで、俳句を楽しめるアプリを作りました。

<ポイント1>
俳句を愛する人々が力を合わせて、俳句を作成します。
・最初のフレーズを作成し、他の人がそれを埋めるのを待つか、好きなフレーズを探して埋めることができます。
・書くより読むことに興味がある場合は、他の人が書いたものを見て、好きなものに投票することもできます。
・好きな特定の俳句について話し合うこともできます。
また、日本語が話せなくても心配ありません。翻訳機能も入れて、言語の壁を打ち破れるようにしました。

<ポイント2>
俳句の各部分は、さまざまな人が作成できます。
・作成したフレーズを別の言語で表示する
・好きなフレーズに投票する
・コメントを投稿し、俳句について話し合う

実装

UIをSalesforce Experience Cloud+ Lightning Web Components(LWC)にしました。翻訳はGoogle Translate APIを利用し、データはPostgres DBに保存して、MuleSoftを使って連携します。シンプルなデータベースとロジックで実装していますが、システムの拡大に備えてMuleSoftを活用するようにしました。

APIの構成

上記の画像に示すように、API-led connectivityをAPIの連携戦略として使用して実装しました。
各APIの役割は、以下の通りです。

Haiku Ex API(Experience API)

UIと直接やり取りします。LWC側がデータベースへ直接アクセスせず、LWCにあうデータ形式でレスポンスを返すことができます。将来的にモバイルアプリやその他のウェブアプリへのインターフェースに接続したい時も、プロセスAPIやシステムAPIを変更せずに、Expirence APIだけ変更して簡単に対応できます。

Haiku P API(Process API)

Expirence APIからの俳句を翻訳し、システムAPIを使用してデータベースにレコードを作成します。 google translate APIにより、翻訳されたデータは文字列形式でデータベースに直接保存されています。翻訳可能な言語の拡張には、JSON形式の言語キーと翻訳されたフレーズ値のペアを使用します。キャッシュスコープも、API呼び出しを減らすための最も重要な関数の1つと見なされています。

Google translate APIの呼び出しとペイロードデータの設定は上記のようになります。

Haiku Ex API(Experience API)

PostgresDBからデータとやり取りするためのAPIです。再利用できるよう、できる限り汎用性を持たせることを意識しています。このプロジェクトでは、すべてのデータを1つのデータベースに配置しているため、DB APIでSQL文を使用してテーブルを組み合わせます。
下記のように動きます。

Let's Haiku Demo

ソースコードはこちら

反省点

APIマネージャーでのAPIの管理や、ロードバランサー周辺のアーキテクチャなど、APIアーキテクチャのより深い層まで対応する時間がありませんでした。より良いアーキテクチャを実現するためにやるべきことはまだたくさんありますが、今回の実装では多くのことを学べたと思います。

最後に

今回もハッカソンに参加していろいろ勉強になりました。
自分のチームだけでなく、他のチームの成果物も見て、その人たちの考え方なども知ることもできてとてもよかったです。
次回もハッカソンが開催されましたら、参加してこのように共有できればと思います。
ありがとうございました。
26 件

関連する記事