Ideas for how we might structure classes for composable, effective layers of abstraction #19
nicholasyager
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
@nicholasyager this totally makes sense to me -- I am a big fan of splitting off the project as an extension of the actual dbt functionality itself -- right now those are definitely too jumbled together! i am more than willing to refactor what we have to look more like this!
Most of this will happen as a part of the larger |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We're quickly reaching the point of our work on
dbt-meshify
where it will be important to consider how we as engineers want to interact with our abstractions. Generally speaking, we want to design classes that are composable, and that provide a clear interface to the operations that we want to perform.With this in mind, I propose that we consider
DbtProject
s to be the core abstraction that we then manipulate and perform logical operations on. For example:`
In order to accomplish this, we can compose our classes with a dbt client and other services depending on our needs. A hypothetical example of this could be:
Using this as a baseline, we can abstract away the work that the dbtRunner is doing (perhaps to support calls to the
dbt-server
instead of a local dbt runner), as well as extend the functionality of aDbtProject
.Considerations
This proposal describes how we want to wrap and interact with dbt projects without actually solving the problems of splitting and merging projects. While this is a bit meta, how we describe our abstractions for dbt projects will define how difficult it will be to operate on dbt projects in the core functionality of
dbt-meshify
.Open Questions
Beta Was this translation helpful? Give feedback.
All reactions