#overseer #polkadot #subsystem #node #protocols #communicate #set

polkadot-overseer

System overseer of the Polkadot node (polkadot v1.15.0)

16 major breaking releases

new 17.0.0 Jul 19, 2024
15.0.0 Jul 13, 2024
14.0.0 Jun 24, 2024
13.0.0 May 24, 2024
0.0.0 Nov 21, 2022

#218 in Magic Beans

Download history 1165/week @ 2024-03-29 1049/week @ 2024-04-05 693/week @ 2024-04-12 735/week @ 2024-04-19 1065/week @ 2024-04-26 676/week @ 2024-05-03 717/week @ 2024-05-10 919/week @ 2024-05-17 1295/week @ 2024-05-24 972/week @ 2024-05-31 1192/week @ 2024-06-07 635/week @ 2024-06-14 1251/week @ 2024-06-21 791/week @ 2024-06-28 299/week @ 2024-07-05 754/week @ 2024-07-12

3,182 downloads per month
Used in 54 crates (17 directly)

GPL-3.0-only

91KB
2K SLoC

Overseer

overseer implements the Overseer architecture described in the implementers' guide. For the motivations behind implementing the overseer itself you should check out that guide, documentation in this crate will be mostly discussing technical stuff.

An Overseer is something that allows spawning/stopping and overseeing asynchronous tasks as well as establishing a well-defined and easy to use protocol that the tasks can use to communicate with each other. It is desired that this protocol is the only way tasks communicate with each other, however at this moment there are no foolproof guards against other ways of communication.

The Overseer is instantiated with a pre-defined set of Subsystems that share the same behavior from Overseer's point of view.

                             +-----------------------------+
                             |         Overseer            |
                             +-----------------------------+

            ................|  Overseer "holds" these and uses |..............
            .                  them to (re)start things                      .
            .                                                                .
            .  +-------------------+                +---------------------+  .
            .  |   Subsystem1      |                |   Subsystem2        |  .
            .  +-------------------+                +---------------------+  .
            .           |                                       |            .
            ..................................................................
                        |                                       |
                      start()                                 start()
                        V                                       V
            ..................| Overseer "runs" these |.......................
            .  +--------------------+               +---------------------+  .
            .  | SubsystemInstance1 |               | SubsystemInstance2  |  .
            .  +--------------------+               +---------------------+  .
            ..................................................................

Dependencies

~92–135MB
~2.5M SLoC