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!