100以上の新規コネクタ提供を可能にしたアーキテクチャ
by
yu-kioo
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
100以上の新規コネクタ提供を可能にした アーキテクチャ 2025.12 primeNumber Inc.
Slide 2
Slide 2 text
Thank you!
Slide 3
Slide 3 text
3 クラウドETLサービス:TROCCO
Slide 4
Slide 4 text
4 プロダクトとしての競争力 対応コネクタ数は競争力の大きな要素
Slide 5
Slide 5 text
5 …が、コネクタ開発は大変
Slide 6
Slide 6 text
6 コネクタ開発は大変 検証環境取得 → 仕様調査 → 開発 → QA コネクタ毎の新規実装や既存実装の変更などで変更数が膨らむ e.g. 5コネクタの平均値 ● PRの平均ファイル数: 75 files ● 新規追加ファイル数:52 files ● 既存の変更ファイル数:23 files
Slide 7
Slide 7 text
7 CONNECT 100+ PJ ● コネクタの種類は色々ある(DB, DWH, SaaS etc) ● APIを利用するコネクタ の開発工数の短縮・削減を図ることで リリースペースを上げられないか ➡ CONNECT 100+ PJ スタート
Slide 8
Slide 8 text
8 結果:コネクタリリース数が大幅に増加
Slide 9
Slide 9 text
9 話すこと / 話さないこと ● 話すこと:アーキテクチャ・技術部分 ● 話さないこと:運用プロセス・開発体制 ○ 運用プロセス・開発体制に関してはこちら参考 ■ Connect 100+を支える技術 SpeakerDeck
Slide 10
Slide 10 text
10 CONNECT 100+ PJ コネクタ開発工数の短縮・削減を どう図ったか?
Slide 11
Slide 11 text
11 CONNECT 100+:開発工数をどう短縮したか? 宣言的なコネクタ実装が行える基盤の開発 => CONNECT 100+ PJ スタート => CONNECT 100+ PJ スタート frontendからbackendまで設定ファイルの記述で実装
Slide 12
Slide 12 text
12 宣言的なコネクタ実装 Embulkに読み込ませるYAML例 設定フォーム コネクタ開発時には APIの仕様に従って YAMLを書く (宣言的) YAMLを元に 動的にフォームや Embulkのconfig.ymlを 作成するメタプロ機構
Slide 13
Slide 13 text
13 宣言的実装:config connection.yml step1_schema.yml ● 認証タイプやホスト情報の定義 ● backendでの動的な処理に使用 ● formの定義 ● frontendでのform生成に使用
Slide 14
Slide 14 text
14 宣言的実装:backend ● 動的な振る舞いやrelationを定義す るBaseクラス ● inherited + class_eval ○ configの設定に応じて振る舞い やrelationが動的に定義され る
Slide 15
Slide 15 text
15 宣言的実装:frontend ● ymlの階層構造をそのままReactコンポーネントツリーに変換 FormBuilder
Slide 16
Slide 16 text
16 宣言的実装:frontend ● 再帰的な参照でネスト構造のformもrendering FormBuilder
Slide 17
Slide 17 text
17 宣言的実装 todo: ここなんか Backend メタプロによる • 動的な振る舞い定義 • 動的なrelation定義 Frontend FormBuilderによる ● UIコンポーネントの自動生成 + generatorによる生成 + generatorによる各種fileの生成・変更
Slide 18
Slide 18 text
18 宣言的実装による開発効率への効果 ↓ configのみ 不要 ✔ FormBuilderは既存コネクタの置き換えにも利用し、保守性向上にも貢献 ✔ FormBuilderは既存コネクタの置き換えにも利用し、保守性向上にも貢献 新規追加ファイル ↓ configのみ 既存の変更ファイル ↓ 不要
Slide 19
Slide 19 text
19 再掲:コネクタリリース数
Slide 20
Slide 20 text
20 PJ当時と現在の開発環境の変化 2024年8月頃 LLMベースの開発はまだ主流ではなかった → 現在 手放せない存在に CONNECT 100+で作った構造はLLMの活用も行いやすい CONNECT 100+で作った基盤はLLMの活用も行いやすい ➡ 宣言的であることで、パターンが明確・出力形式が固定だから configの記述もLLMで精度高く効率化できている
Slide 21
Slide 21 text
21 LLM時代に高まる良いアーキテクチャ / 設計のレバレッジ 短期・中長期の両方で 以前より高まった 良いアーキテクチャ / 設計の価値が 短期・中長期の両面で以前より高まっている 短期 LLMの活用効率を最大化 中長期 技術負債の増加速度を低減
Slide 22
Slide 22 text
22 短期:LLMの活用効率を最大化 人間にとって良いアーキテクチャ / 設計 = LLMにとっても良い 〃 人間 ● 認知負荷の軽減 ● レビューコストの削減 LLM ● コンテキストウィンドウの最小化 ● 出力の安定化 以前:良いアーキテクチャ / 設計 → 人間の生産性向上 現在:良いアーキテクチャ / 設計 → 人間の生産性向上 + LLMの活用効率向上
Slide 23
Slide 23 text
23 中長期:技術負債の増加速度を低減 変わらないこと 良いアーキテクチャ / 設計は中長期的な開発生産性を高める LLMによる変化 プロダクトにコードが積み上がる速度が早まった • 「とりあえず作る」が低コスト化 • 技術負債が積み上がる速度も上がっている 抽象レイヤーが綺麗であることで技術負債の増加速度を低減
Slide 24
Slide 24 text
24 LLM時代に高まる、良いアーキテクチャ / 設計のレバレッジ Foundation 短期 LLMを「高速に・精度高く」使うための土台 Control 中長期 高速に積み上がるコードを制御するブレーキ 良いアーキテクチャ / 設計の価値は変わらないが、その価値がもたらすレバレッジがよ り大きくなっている
Slide 25
Slide 25 text
25 TROCCO&COMETA Advent Calendar やってます! https://qiita.com/advent-calendar/2025/trocco
Slide 26
Slide 26 text
26 We are hiring! primeNumberではプロダクトづくりに携わる さまざまな職種を絶賛募集しております! https://herp.careers/v1/primenumber
Slide 27
Slide 27 text
27 Thank you!