nestjs / docs.nestjs.com

The official documentation https://docs.nestjs.com 📕
MIT License
1.19k stars 1.71k forks source link

Update FAQ Hybrid application Docs to clarify bootstrap order #2485

Open haimprecise opened 2 years ago

haimprecise commented 2 years ago

Is there an existing issue that is already proposing this?

Is your feature request related to a problem? Please describe it

When utilizing onApplicationBootstrap / onModuleInit and consuming app's functionality inside Microservices, it is important to clarify that the order of the bootstrap lines plays an essential role:

For example:

await app.startAllMicroservices();
await app.listen(3001);

The lifecycle events will complete after the microservices have started.

await app.listen(3001);
await app.startAllMicroservices();

The lifecycle events will complete before the microservices have started.

We had a bug when our application started and a microservice was immediately consumed, before our Promises from modules' OnModuleInit functions have finished.

Describe the solution you'd like

  1. Explain that lifecycle events happen when you call listen and not create
  2. Explain that the order of startAllMicroservices and listen is crucial

Teachability, documentation, adoption, migration strategy

Update the Lifecycle and Hybrid Application pages

What is the motivation / use case for changing the behavior?

To educate developers and to avoid future bugs. I had to debug your code to figure these things out...

Tony133 commented 2 years ago

Hi @haimprecise, for questions or issue regarding documentation you have to open them in this repository: https://github.com/nestjs/docs.nestjs.com

Anyway feel free to do a PR if you want for this problem