File size: 1,135 Bytes
1395e20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
user { # User
  n1: circle label:"Start Idempotent Consumer"
  n4: rectangle label:"Execute Idempotent Consumer action"
  n7: rectangle label:"Monitor Idempotent Consumer status"
  n10: circle label:"End Idempotent Consumer"
  n1.handle(bottom) -> app.n2.handle(top) [label="Success"]
  n4.handle(bottom) -> app.n5.handle(top) [label="Valid"]
  n7.handle(bottom) -> app.n8.handle(top) [label="Next"]
}

app { # App
  n2: rectangle label:"Receive Idempotent Consumer event"
  n5: rectangle label:"Record Idempotent Consumer outcome"
  n8: diamond label:"Monitor Idempotent Consumer status"
  n2.handle(bottom) -> service.n3.handle(top)
  n5.handle(bottom) -> service.n6.handle(top)
  n8.handle(bottom) -> service.n9.handle(top)
  n8.handle(right) -> user.n7.handle(right) [label="Retry/Rejected"]
}

service { # Service
  n3: rectangle label:"Validate Idempotent Consumer conditions"
  n6: rectangle label:"Monitor Idempotent Consumer status"
  n9: rectangle label:"Monitor Idempotent Consumer status"
  n9.handle(right) -> user.n10.handle(bottom)
  n6.handle(right) -> user.n7.handle(left)
  n3.handle(right) -> user.n4.handle(left)
}