4 ms·
Me and my colleagues came up with an abstraction called conductors for the orchestration problem. Short version is that when you have some dependence on multipl
by scott_s 6y ago
Me and my colleagues came up with an abstraction called conductors for the orchestration problem. Short version is that when you have some dependence on multiple resources being in a particular state before creating or updating yet another resource, use a conductor. They observe multiple resource kinds, and operate a FSM internally. State transitions happen upon receiving an event from an observed resource. The logs of the conductor make it easy to debug dependency problems, because you can easily see that your conductor’s FSM is in a particular state, waiting to see some number of a particular resource.
The other principles we developed are “controllers” only control one resource and all resource updates for a resource kind must be serialized through a coordinator. Our paper has much more detail: A Cloud Native Platform for Stateful Streaming, https://arxiv.org/abs/2006.00064 https://arxiv.org/abs/2006.00064
- jadbox 6y agoConductors sorta of sounds like the OTP pattern with supervisors: https://erlang.org/doc/design_principles/sup_princ.html https://erlang.org/doc/design_principles/sup_princ.html