ELW株式会社 テックブログ

リアルなログをそのままお届けします。

バックエンド勉強会

QuarkusでMCPサーバーを構築し、AI AgentとSlack botを連携させる

CTOの村上です。本記事では、Quarkusを使用してMCPサーバーを構築し、OpenAI Agent SDKを使ったAI Agentとの連携、さらにSlack botとしての実装までをプロトタイプとして作成しましたので、その解説をさせていただきます。なお、記載しているコードについて…

検索エンジンとMongoDB Atlas Searchについて

はじめに CTOの村上です。弊社では一覧検索でMongoDB Atlasを使用しています。 DRIVE SFAではエンティティに対してカスタム項目を設定でき、標準の項目でもカスタム項目でも部分一致検索が出来るという仕様上、途中からパフォーマンス観点の対策として採用し…

OpenAI Chat Completions API におけるfunctionsの活用

◆ はじめに AIからの回答を、JSONなど定型の構造体に収めてアプリケーション上で活用したい、という場面はよくあると思う。 プロンプトで「このような型で回答してほしい」といった要望を逐一指示することも可能ではあるが、実際にやってみると回答にブレが…

MCPを理解する

エンジニアの井立田です。 本記事では、最近注目されているMCPの基本的な概念について、簡潔にわかりやすく解説します。

Redis Streamsを利用した通知アーキテクチャ

◆はじめに 揮発性のある軽量な通知機能をWebアプリに実装する必要があり、時系列でメッセージを記録可能で既読処理も単体で実現できるRedis Streamsが適当だと思い採用した。以下、その時行ったサーバー側実装を備忘録的にまとめる。 (※実際の名称などは変え…

Kotlinpoet による Kotlinコードの生成

LLM時代には、ルールベースで決まるコードはスクリプトで生成し、それを使ってLLMにコーディングしてもらうのが一つの効率的なやり方だと思っています。今回は、Kotlinpoetを使ったKotlinコード生成について勉強会で話したので共有させていただきます。

Django と Quarkus + Kotlin に学ぶバックエンド開発スタイル比較

1. Djangoとは オープンソースのPython製フルスタックWebフレームワーク(初版 2005 年)。 MTV構造:Model=DB層、View=ロジック、Template=画面。役割が分かれ保守しやすい。 “Batteries‑included” フィロソフィ ─ ORM・管理画面・認証・国際化などを標…

Junieを使ってみた

Junieとは JetBrainsが2025年4月16日に正式リリースしたAIコーディングエージェント。 チャット欄に自然言語で依頼したタスクを自律的に計画・実行。実際にソースコードを編集、ビルドやユニットテストまで走らせたうえで差分を提示してくれる。 コードの補…

LATERALサブクエリについて

CTOをしております、村上です。今回のバックエンド勉強会では、Postgres SQLのLATERALサブクエリについて話しましたので、その内容を紹介させていただきます。

Discordでゲームのマルチサーバを制御するbotを作ってみた

プライベートでDockerコンテナで動作するPalworldゲームサーバーを監視・制御するためのDiscord Botを作ったことがあるので紹介します。 主な機能は以下の通り プレイヤーの監視と非アクティブ時の自動停止 Discordメッセージによるサーバーの手動起動・停止…

JWTを理解する

ELWでエンジニアをしております。井立田です。 今回はJWTとJWTを用いたセッション管理について見ていきます。 JWTとは JSON Web Tokenの略 JSON形式でデータを安全にやりとりするためのトークン 電子署名によって改ざんを検知できる

バックエンド社内勉強会: 共通化について

はじめに "どうしてあなたの共通化は間違っているのか"という、以下の@wolfmagnate(進捗ゼミ) さんの記事の第1章から3章をベースに勉強会を実施しました。 https://qiita.com/wolfmagnate/items/73c3770cf036eada630d

zero-ETL統合時の制約メモ

techblog.elw.co.jp に対して、留意した方がよさそうなものを抜粋。 AuroraとRedshiftは同一リージョンに存在する必要あり 統合済のDBクラスタは削除不可 先に統合を全て削除 Aurora(PostgreSQL) : Redshift = 1 : 1 クォータのデフォルト オブジェクト識別…

バックエンド社内勉強会: Aurora PostgresSQLとRedshiftのzero-ETL統合について

CTOをしております、村上です。 先日、フロントエンドの勉強会の初回記事を掲載させていただきましたが、 そのバックエンド版の初回となります。 フロントエンド版と同様に担当制で、各回の担当者には議論したいアジェンダとその材料を持って来てもらいます…