大量のデータをいい感じに処理してみたい、というふわっとした動機で作るGleamアプリケーション

大量のデータをリアルタイムで処理してみたいというのが動機になる。
以下のNOAAのデータが、高頻度の更新かつ大規模(9万行くらいのJSON)なデータ元だったので、活用する。
MVPとして、アラートの種類を分別してカウント、更新された場合のみインクリメントするような簡易的なUIを想定している。
カウンターのリアルタイム版的な。

該当リポジトリ

Svelteも勉強したかったので選択した

Goは慣れているので

なんとかGleamでNOAAのJSONをパースできるようになった。
エラーハンドリングがまだまだだけど、一旦できあがったからよしとする。
1週間くらいかかったので、嬉しい。


SSEでフロントのカウンター機能を随時アップデートしたい。


JSOのパースとDBへの保存まで実装完了した。
Insertをバルクでやる方法を知らないので、500件くらいのInsertが走ってしまいよくないと思う。

データが更新されない時があり、なぞ

GCとかパフォーマンス周りを見たいけれど、わからない

Sever-sent Evnetを活用して、NOAAから取得したデータをフロントエンドまで、Severityを含んで送信することに成功した。
一度に返ってくるJSONは9万行あるが、さすがに毎回すべて新しいデータというわけではないので、差分のみ更新しているが、これならNOAAのからの取得を5分に1度とかでも良い気がする。

Gleam <-> GoなどのGleamを核としたマイクロサービス群で、gRPCを使いたい。
知識不足なのもあるだろうが、JSONをフロントエンドからバックエンドへ渡してやる際に色々定義したり考慮するのが面倒だし、ミスも起きるので避けたい。
gRPC自体は複雑すぎて、自分の理解が及ばないと感じたので、Connect, CUE, Bufを使って軽量な感じでやりたい。