[CT-1453] [Spike] A pattern for plugins #6184
Labels
python_api
Issues related to dbtRunner Python entry point
spike
stale
Issues that have gone stale
Team:Adapters
Issues designated for the adapter area of the code
We want
dbt-coreto be much more pluggable in the future, with several supported interfaces. Think: modeling languages, backend implementations, authentication, ...We have a single blessed plugin interface today, for adapter plugins (authentication + runtime engines for models). Basically (or as I understand it), we use
importlibto dynamically import thedbt-somedbadapter plugin, and make it available todbt-core:dbt-core/core/dbt/adapters/factory.py
Line 57 in be4a91a
We don't love the way this works. Specifically:
adaptersmoduledbt-coreand plugins is difficult to follow through the code:BaseAdapter(indbt-core) →PostgresAdapter(indbt-postgres) → parsing, tasks, etc (indbt-core)What are modern plugin patterns for Python? Let's do some investigation here. Bonus points for architectures that offer a degree of language agnosticism. This is very much aligned with our tech debt initiatives over the next few months, around "API-ification" and logging, and it will be relevant for all our sub-teams into next year.
The text was updated successfully, but these errors were encountered: