Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Render Macro
border1
formatPNG
exportNamepartition-reconciliation-step-2.png
titlePartition Reconciliation Step 2
@startuml
hide footbox
skinparam maxMessageSize 70

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

U -> PAC: poll()
activate PAC
PAC -> BEQ: poll()
activate BEQ
return

PAC -> PAC: process background events
...

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


In the above...



PlantUML Render Macro
formatPNG
@startuml

[*] --> Stable
Stable : this is a string
Stable : this is another string

Stable ---> Revoking
Stable ---> Assigning

state Revoking {
  R1: entry point into revoking partitions
  R2: if we have a callback,\nwe need to invoke it
  R3: after we've made local changes,\nawait heartbeat

  [*] --> R1
  R1 -> R2
  R2 -> R3
  R1 -> R3
  R3 ---> Stable
  R3 ---> Assigning
}

state Assigning {
  A1: entry point into assigning partitions
  A2: if we have a callback,\nwe need to invoke it
  A3: after we've made local changes,\nawait heartbeat

  [*] --> A1
  A1 -> A2
  A1 -> A3
  A2 -> A3
  A3 -> Stable
}

Stable --> Closing
Revoking --> Closing
Assigning --> Closing

Closing --> [*]

@enduml