@startuml actor User as U participant ProtoAsyncConsumer as PAC participant "Revoke\nPartitions\nEvent" as RPE participant "Partitions\nRevoked\nEvent" as PRE participant "Consumer\nRebalance\nListener" as CRL queue "Application\nEvent\nQueue" as AEQ queue "Backend\nEvent\nQueue" as BEQ
skinparam maxMessageSize 70
U -> PAC: poll() activate PAC PAC -> BEQ: poll() activate BEQ return
PAC -> PAC: process background events ... if a 'revoke partitions' event is found
PAC -> RPE: partitions() activate RPE return
PAC -> CRL: partitionsRevoked() activate CRL return
create PRE PAC -> PRE : new PAC -> AEQ : add() activate AEQ return
return @enduml |