What the different between ClusterStateTaskListener and AckedClusterStateTaskListener

what the different between ClusterStateTaskListener.clusterStateProcessed and AckedClusterStateTaskListener.onAllNodesAcked , they all call after elasticsearch publish finish.

AckedClusterStateTaskListener.onAllNodesAcked (or org.elasticsearch.cluster.ClusterStateAckListener#onAllNodesAcked in recent versions) is only called when all nodes have successfully acked the state. Otherwise onAckFailure is called. And acking has a different timeout from publication so this might happen before, or after, the end of the publication.

I still don't know what the difference is between the two call points in my problem, because their call timing does occur after all nodes respond to ack