When client executes a DDL query such as create table, driver sends the query and waits a configurable time for schemas to agree before returning. However even if the schemas disagree, it returns any way. The client has no way of knowing if the schemas agree or not. It will be good to expose an API that tells the client if the schemas agree on al peers.
Tentatively including in 2.0.10. This should be pretty straightforward.
Here's a preview of the new API:
after a DDL query, you can use resultSet.getExecutionInfo().isSchemaInAgreement() to check if peers agreed within the configurable time (Cluster.Builder.withMaxSchemaAgreementWaitSeconds).
at any time, you can perform a one-time check with cluster.getMetadata().checkSchemaAgreement(). This does not retry so maxSchemaAgreementWaitSeconds does not apply here (this gives more flexibility if you want to retry your own way with a specific schedule).