Dropwizard provides an interface called . It's just a and a . It's a with start/stop lifecycle methods. works well when you have one of them. When you have multiple data sources, it can be difficult to tie them together through configuration. For example, if you use Liquibase for migrations, you'd need to write code to tie specific migrations to specific data sources; it cannot be done through configuration alone. Liftwizard provides , which is a with a name. Other Liftwizard bundles expect s to be configured, and refer to them by name in their own configuration. In the liquibase example, we could tie specific migrations to specific data sources through configuration alone. Different named data sources can refer to different databases, or the same database configured different ways. In the following example, we have one data source for Postgres, and three data sources to connect to h2; over the network, in-memory, and on disk. To use named data sources, start by changing the Configuration class to implement . Add a field with type . Add the getter/setter required by the interface. Now we can use the named data sources in the configuration of other bundles. For example, we use the data source named in the liquibase configuration. ManagedDataSource public interface ManagedDataSource extends DataSource, Managed { } io.dropwizard.lifecycle.Managed javax.sql.DataSource DataSource ManagedDataSource NamedDataSource ManagedDataSource NamedDataSource NamedDataSourceFactoryProvider public class HelloWorldConfiguration extends Configuration implements NamedDataSourceProvider // , ... other interfaces { // ... } NamedDataSourcesFactory @JsonUnwrapped private @Valid @NotNull NamedDataSourcesFactory namedDataSourcesFactory = new NamedDataSourcesFactory(); @Override @JsonProperty("dataSources") @JsonUnwrapped public NamedDataSourcesFactory getNamedDataSourcesFactory() { return this.namedDataSourcesFactory; } @JsonProperty("dataSources") @JsonUnwrapped public void setNamedDataSourcesFactory(NamedDataSourcesFactory namedDataSourcesFactory) { this.namedDataSourcesFactory = namedDataSourcesFactory; } h2-tcp