Testing Distribution scenarios

Testing

  • Start distributor without distributions on cluster A with init enabled.

    • Distributions Enabled to false

    • Start distributor without distributions on cluster A with init enabled.

    • Make sure the init principals contain the principal names of the other cluster distributors

    • Apply config

    • Verify the correct Connect deployment in Kubernetes. Check logs. No connectors running, but ACLs were set for remote distributors to work

  • Start distributor without distributions on cluster B with init enabled

    • Distributions Enabled to false

    • Make sure the init principals contain the principal names of the other cluster distributors

    • Apply config

    • Verify the correct Connect deployment in Kubernetes. Check logs. No connectors running, but ACLs were set for remote distributors to work

  • Start message distributor on Cluster A

    • Ensure only the correct level distributor is enabled

    • Ensure init is enabled to create the proper groups for the distributor

    • Apply config

    • Verify the connector state and logs in Kubernetes

    • Produce on a topic on Cluster A

    • Consume from the topic on Cluster B to verify messages from A are distributed

  • Start message distributor on Cluster B

    • Ensure only the correct level distributor is enabled

    • Ensure init is enabled to create the proper groups for the distributor

    • Apply config

    • Verify the connector state and logs in Kubernetes

    • Start a consumer on the Cluster A test topic

    • Start a consumer on the Cluster B test topic

    • Produce to test topic on Cluster A

    • Verify Consumer Cluster A has a single copy of the record

    • Verify Consumer Cluster B has a single copy of the record

    • Produce a new record to test topic on Cluster B

    • Verify Consumer Cluster B has a single copy of the second record

    • Verify Consumer Cluster A has a single copy of the second record

  • Wait for Message Distribution to catch up

    • Check lags for message distribution on the topics, they should return to close to zero, depending on produce load

    • Start Offset Committer Cluster B

    • Ensure only the offset committer enabled is set to true

    • Ensure init is enabled to create the proper groups for the committer

    • Apply config

    • Verify the correct timestamps topic is created

    • Verify that the Offset Committer tasks are running (logs, kubernetes reported Connector state)

  • Start Offset Distributor Cluster A

    • Ensure only the offset committer enabled is set to false

    • Ensure only the offset distributor enabled for the level is set to true

    • Ensure init is enabled to create the proper groups for the committer

    • Apply config

    • Verify that the Offset Distributor tasks are running (logs, kubernetes reported Connector state)

    • Collect the current offset for the test topic and partition on Cluster B

    • Start a consumer on the timestamps topic on Cluster B

    • Set offset for the test topic and group on Cluster A

    • Verify that after the window period a timestamps record for the group is is consumed on Cluster B

    • Collect the current offset for the test topic and partition on Cluster B (should be changed)

  • Start Offset Committer Cluster A

    • Ensure only the offset committer enabled is set to true

    • Ensure init is enabled to create the proper groups for the committer

    • Apply config

    • Verify the correct timestamps topic is created

    • Start Offset Distributor Cluster B

    • Ensure only the offset committer enabled is set to false

    • Ensure only the offset distributor enabled for the level is set to true

    • Ensure init is enabled to create the proper groups for the committer

    • Apply config

    • Verify that the Offset Distributor tasks are running (logs, kubernetes reported Connector state)

    • Collect the current offset for the test topic and partition on Cluster A

    • Start a consumer on the timestamps topic on Cluster A

    • Set offset for the test topic and group on Cluster B

    • Verify that after the window period a timestamps record for the group is is consumed on Cluster A

    • Collect the current offset for the test topic and partition on Cluster A (should be changed)