The only real complexity around it is properly dealing with the queue in a large scale production environment, and none of that is code complexity.
CrossDC is a critical feature for many, the problem with the previous iteration was it tried to be the queuing system and was obviously never going to be near the level of a real one, and it had to be deeply integrated with Solr and so it had high costs on all fronts and was always going to struggle with the reliability you’d need from a disaster recovery feature. This approach offloads the heavy lifting to systems made and hardened and dedicated to that lifting, and is extremely loosely integrated with Solr - it is currently as loose as a plugin. Because of that, we have no need for this to be part of Solr. We use it fine outside of Solr. The only motivation to contribute CrossDC to Solr is so that others don’t have to build 10 other solutions separately, and because the effort on those 10 other solutions could be focused on a shared solution. There are plenty of things that have been thrown in Solr because someone needed it in Solr due to their work situation and integration requirements of that feature. This isn’t one of them. Our need is extremely low. It simply makes sense to do. The pain of not doing would be almost non existent.