Exploring the boot sequence
We learned in the previous section that a plugin is just an asynchronous function with well-defined parameters. We’ve also seen how Fastify plugins are the core entity we use to add features and functionalities to our applications. In this section, we will learn what the boot sequence is, how plugins interact with each other, and how Fastify ensures that all the developer’s constraints are met, before running the HTTP server.
Firstly, it is essential to say that the Fastify boot sequence is asynchronous too. Fastify loads every plugin added with the register
method, one by one, respecting the order of the registration. Fastify starts this process only after .listen()
or .ready()
are called. After that, it waits for all promises to be settled (or for all completed callbacks to be called, if the callback style is used), and then it emits the ready event. If we have already got this far, we can be sure that our application is up and running...