Commit graph

1 commit

Author SHA1 Message Date
Rudolf Meijering 42d868db7f
[RFC][skip-ci] Prevent plugins from blocking Kibana startup (#45796)
* Draft RFC for unblocking plugin lifecycle methods

* Draft RFC for unblocking kibana startup

* Rename rfc from 0006 to 0007

* Add references to TC39 top-level await

* Update with review suggestion

Co-Authored-By: Court Ewing <court@epixa.com>

* Update RFC#0007

* Apply suggestions from code review

Co-Authored-By: Aleh Zasypkin <aleh.zasypkin@gmail.com>

* Address review comments from @joshdover and @azasypkin

1. Fleshed out motivation, this RFC doesn't prevent errors, but isolates the
   impact on the rest of Kibana.
2. Added a footnote explaining that sync lifecycles can still block on sync
   for loops, so it's not a perfect guarantee (from @azasypkin).
3. Updated IContextProvider type signature in (2) to match latest master
4. Dynamically reloading configuration changes should be limited to a
   whitelist, risky changes like the Elasticsearch host should still require a
   complete restart. Added to (3) based on
   https://github.com/elastic/kibana/pull/45796#discussion_r331277153
5. Added Section 5, "Core should expose a status signal for Core services &
   plugins" (from @joshdover)
6. Added the drawback that incorrect, but valid config would not block Kibana,
   and might only be surfaced when the associted API/UI gets used (from
   @azasypkin)

* Formatting: number ordered list instead of letter for github rendering

* Apply suggestions from code review

Co-Authored-By: Josh Dover <me@joshdover.com>

* Update rfcs/text/0007_lifecycle_unblocked.md

Co-Authored-By: Josh Dover <me@joshdover.com>

* Example of plugin exposing API dependent on internal async operation

* Clarify that context providers won't block kibana, just their handlers

* Update adoption strategy as per latest discussion

* Fix formatting
2019-12-18 14:52:18 +01:00