You don't need the MapConfigService, you can use a serviceId (or a marker annotation) to disambiguate your HazelcastConfigurer instances.
// serviceId = "mapConfigHazelcastConfigurer" public HazelcastConfigurer buildMapConfigHazelcastConfigurer(final Collection<MapConfig> mapConfigs) { return new HazelcastConfigurer { public void configure(Config config) { for (MapConfig mapConfig : mapConfigs) { config.addMapConfig(mapConfig); } } }; } public void contributeMapConfigHazelcastConfigurer(Configuration<HazelcastConfigurer> config) { config.add(new MapConfig(...)); config.add(new MapConfig(...)); } public static void contributeHazelcastConfigService( Configuration<HazelcastConfigurer> config, @ServiceId("mapConfigHazelcastConfigurer") HazelcastConfigurer mapConfigHazelcastConfigurer { config.add(mapConfigHazelcastConfigurer); }