この記事は trocco Advent Calendar 2023 の6日目の記事となります。 はじめに 今回はtroccoの内部でも利用されているETLのためのOSSであるEmbulkについて、core部分のソースコードリーディングを通して、そのしくみを紐解いていきたいと思います。 おことわり Embulkの基本的な使い方などについては解説しません。 筆者はembulk-coreにコントリビュートしているわけではないので、間違いなどがあればお気軽にご指摘ください。 今回見ていくcoreの実装自体は、比較的変更が少ないとされる各種プラグインが従うべきインターフェース部分(embulk-spi)から隠蔽されているため、今後この記事の内容が正しくなくなる可能性は容易にあります。 Embulkにはguessやpreviewやresumeといった機能も含まれていますが、今回は単純なembulk r