Skip to content

Spawn Case Actor from Report Demo #261

@ahouseholder

Description

@ahouseholder

Spawn Case Actor from Report

sequenceDiagram
    autonumber
    actor finder as Reporter
    box Coordination Service
        participant inbox
        participant accept_hdlr as Accept<br/>Handler
    end
    box Case Service
        participant c_inbox as inbox
        participant add as Add<br/>Handler
    end
    box APIv1
        participant cases
    end
    actor coordinator as Receiver
    activate accept_hdlr
    note right of accept_hdlr: Case Service<br/>Initialized
    accept_hdlr ->> coordinator: POST Create(Case)
    activate coordinator
    coordinator -->> accept_hdlr: 202 Accepted
    deactivate coordinator
    accept_hdlr ->> finder: POST Create(Case)
    activate finder
    finder -->> accept_hdlr: 202 Accepted
    deactivate finder

    par Add Receiver Participant
        note over accept_hdlr: Create Participant(Receiver)
        accept_hdlr ->> c_inbox: POST /cases/{id}/inbox<br/>Add(Participant(Receiver))
        activate c_inbox
        c_inbox ->> add: async handler<br/>(Add(Participant(Receiver)))
        activate add
        add ->> cases: POST Participant
        activate cases
        cases -->> add: 200 OK
        deactivate cases
        c_inbox -->> accept_hdlr: 202 Accepted
        deactivate c_inbox
        add ->> coordinator: POST Add(Participant(Receiver))
        activate coordinator
        coordinator -->> add: 202 Accepted
        deactivate coordinator
        deactivate add

    and Add Finder Participant
        note over accept_hdlr: Create Participant(Finder)
        accept_hdlr ->> c_inbox: POST /cases/{id}/inbox<br/>Add(Participant(Finder))
        activate c_inbox
        c_inbox ->> add: async handler<br/>(Add(Participant(Finder)))
        activate add
        add ->> cases: POST Participant
        activate cases
        cases -->> add: 200 OK
        deactivate cases
        c_inbox -->> accept_hdlr: 202 Accepted
        deactivate c_inbox
        add ->> coordinator: POST Add(Participant(Finder))
        activate coordinator
        coordinator -->> add: 202 Accepted
        deactivate coordinator
        add ->> finder: POST Add(Participant(Finder))
        activate finder
        finder -->> add: 202 Accepted
        deactivate finder
        deactivate add

    and Add Report
        accept_hdlr ->> c_inbox: Add(Report)
        activate c_inbox
        c_inbox ->> add: async handler<br/>(Add(Report))
        activate add
        c_inbox -->> accept_hdlr: 200 Accepted
        deactivate accept_hdlr
        deactivate c_inbox
        add ->> cases: POST Report
        activate cases
        cases -->> add: 200 OK
        deactivate cases
        add ->> coordinator: POST /actors/{receiver_id}/inbox<br/>Add(Report)
        activate coordinator
        coordinator -->> add: 200 Accepted
        deactivate coordinator
        add ->> finder: POST /inbox<br/>Add(Report))
        activate finder
        finder -->> add: 200 Accepted
        deactivate finder
        deactivate add
    end

Loading

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions