docs.nestjs.com icon indicating copy to clipboard operation
docs.nestjs.com copied to clipboard

Update FAQ Hybrid application Docs to clarify bootstrap order

Open haimprecise opened this issue 3 years ago • 1 comments

Is there an existing issue that is already proposing this?

  • [X] I have searched the existing issues

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...

haimprecise avatar Sep 30 '22 15:09 haimprecise