-
Notifications
You must be signed in to change notification settings - Fork 215
Open
Description
supervisor3 was a bad choice
supervisor3
is stale, lagging behind with the changes in OTP's supervisor.erl- desired features from
supervisor3
can be addressed withsupervisor
with some additional retry mechanism.- children restarts do not cause supervisor restart (this is not really necessary as the children are long lived in
brod
) - delayed restart (need our own delay-retry loop)
- children restarts do not cause supervisor restart (this is not really necessary as the children are long lived in
not following OTP design principal
brod_client
directly spawn_link
consumer and producer supervisor makes the processes unreachable from application root supervisor. i.e. it's not a tree.
this makes the release handler unable to traverse all processes from the supervision tree to perform hot-upgrades.
design proposal
- Use supervision tree for all processes.
brod_client
should run in a delayed-retry loop to startbrod_producers_sup
and/orbrod_consumers_sup
per configuration- Once a
brod_producers|consumers_sup
is started, it should not die at connection restarts (in fact this is the current behavior, it runs in a loop to to poll new leader connection frombrod_client
.
brod_sup
|
+-- brod_clients_sup
| |
| +-- brod_client (worker)
|
+-- brod_producers_sup
| |......
|
+-- brod_consumers_sup
|......
Metadata
Metadata
Assignees
Labels
No labels