Design
flowchart RL
CGI@{ label: cattle_grid_internal }
CG@{ label: cattle_grid }
Fediverse@{ shape: processes }
SE@{ shape: odd, label: "Side Effects" }
YC@{ shape: odd, label: "Your Code" }
classDef darkred fill:#f004
Fediverse -->|Post /outbox| internal
internal -->|Post,Get| Fediverse
subgraph internal
direction TB
CGI:::darkred -->|AP processiing| SE
end
subgraph exchange
direction TB
CG:::darkred ==> YC
YC ==> CG
end
internal --> exchange
exchange --> internal
where RabbitMQ exchanges are slightly red. As long as your application does not need to modify standard behavior of the Fediverse, you will only need to interact with exchange.