Multi project structure, global macros and packages

Hi.

We are setting up a fairly large data flow architecture in dbt-core. For privacy reasons, we need to land each datasource/data provider in a specific staging database. We will then combine them in the silver layer later in the process. There will be different teams working on each of the data provider pipelines. Therefore we need a separation on the project level, but still we´d like to harmonize macros (at laest have some global macros) and packages we use.

Is there any experience and/or best practices available on such a set up?

For everything common - tests/ macros/ seeds you can create a public project and then use that by importing into your specific project via packages.yml.

You can read about it more here - Packages | dbt Developer Hub

Also the design pattern you are looking for is dbt Mesh, you can read about it here - Intro to dbt Mesh | dbt Developer Hub