I wonder if we should call this `CDTAbstractReplication` to carry in the name that it shouldn't be instantiated.