kibana/rfcs/text
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
..
.gitkeep Add RFC README and template (#31650) 2019-02-22 10:00:13 -06:00
0001_lifecycle_setup.md Update RFC-0001 with PR and issue links (#33598) 2019-03-20 14:15:47 -04:00
0002_encrypted_attributes.md [rfc] Adds RFC for saved objects encrypted attributes. (#33740) 2019-04-30 08:31:02 +02:00
0003_handler_interface.md [RFC] Handler interface (#36509) 2019-06-18 09:51:01 -05:00
0004_application_service_mounting.md Console to NP ready (#43346) 2019-09-12 13:28:29 +02:00
0005_route_handler.md Route handler interface (#39767) 2019-07-24 20:29:29 +02:00
0006_management_section_service.md Update deprecated React.SFC and React.StatelessComponent types (#50852) 2019-11-21 20:53:54 +01:00
0007_lifecycle_unblocked.md [RFC][skip-ci] Prevent plugins from blocking Kibana startup (#45796) 2019-12-18 14:52:18 +01:00