@Override
  public void configure(Binder binder) {
    createBindingChoices(binder, TYPE);
    super.configure(binder);

    PolyBind.optionBinder(binder, Key.get(MetadataStorageProvider.class))
        .addBinding(TYPE)
        .to(DerbyMetadataStorageProvider.class)
        .in(LazySingleton.class);

    PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
        .addBinding(TYPE)
        .to(DerbyConnector.class)
        .in(LazySingleton.class);

    PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
        .addBinding(TYPE)
        .to(DerbyConnector.class)
        .in(LazySingleton.class);
  }
  @Override
  public void configure(Binder binder) {
    Binders.dataSegmentPullerBinder(binder)
        .addBinding("c*")
        .to(CassandraDataSegmentPuller.class)
        .in(LazySingleton.class);

    PolyBind.optionBinder(binder, Key.get(DataSegmentPusher.class))
        .addBinding("c*")
        .to(CassandraDataSegmentPusher.class)
        .in(LazySingleton.class);
    JsonConfigProvider.bind(binder, "druid.storage", CassandraDataSegmentConfig.class);
  }