プロジェクト一覧
商用バックエンド開発事例
POS分析・データ出力
複数サービスの分析データ、大容量CSV出力、クラウド費用の制約に対応したPOS管理アプリケーション。
株式会社本気モードでの商用・本番業務
担当
バックエンド/フルスタック開発・アーキテクチャ貢献 — 管理アプリ、分析、データ出力
10〜20秒
一部の分析更新:従来約1〜2分
約300MB
メモリ使用量を抑えたCSV出力
約$1,300/月
当初のインフラ見積もり比での削減見込み
課題
複数サービスのデータを使う分析処理では、繰り返しの同期取得が依存関係と更新時間を増やしていました。
大容量CSVを全量メモリに保持せず生成する必要があり、出力の再利用と最新データ取得の両立も課題でした。
分析・出力の処理フロー
分析更新とCSV出力に、それぞれバッチ処理とバックグラウンド処理を適用しました。
01サービスデータ
02RabbitMQ連携
03ClickHouse分析
04Redis参照キャッシュ
05バックグラウンド再計算
06管理UI
- 制約付きJSON-to-SQL層で分析要求を検証し、ClickHouse SQLへ変換します。
- テナントと期間ごとに再計算を分割し、バッチ処理とロックで並行更新に対応します。
- CSVは複数サービスからページ単位で取得し、進捗を表示しながらS3へストリーミング出力します。
主な技術判断
01
クエリの境界を明確にする
任意のSQLではなく、検証済みの分析要求をSQLに変換します。
02
同期依存を減らす
変更頻度の低い参照データをキャッシュし、一部の分析をバックグラウンドで再計算します。
03
鮮度の選択を明示する
同じ条件の出力を再利用しつつ、ユーザーが再生成を選べるようにします。
04
実際の稼働状況を確認する
既存EKS環境のEC2ワーカーノード2台への集約に貢献し、ログとバックアップのローテーションを導入しました。
成果と対象範囲
一部の分析更新時間を約1〜2分から10〜20秒へ短縮しました。全APIやプラットフォーム全体の応答時間を示す数値ではありません。
約300MBのCSVをメモリ使用量を抑えて生成しました。インフラ集約による継続費用の削減見込みは、当初のインフラ見積もり比で月約1,300米ドルです。請求実績の監査結果ではありません。
商用業務の公開範囲
公開範囲CVに記載済みの技術判断と集約した成果を紹介しています。顧客データ、独自ソース、内部エンドポイント、詳細な配備設定は掲載していません。
検討・確認事項
- →テナント境界と並行再計算を説明する
- →ストリーミング出力とデータ鮮度の判断を説明する
- →インフラ見積もりの負荷前提を確認する
技術スタック
C#ASP.NET CoreClickHouseRabbitMQRedisAWS S3CognitoEKSEC2