Yes — every module is instantiated exactly once by the NestJS runtime regardless of how many other modules import it. All providers within the module share the same singleton instances across all consumers. The module graph is built once at bootstrap and cached for the application lifetime.
Module singletons mean you never worry about duplicate instantiation when sharing modules across features. If two modules both import UsersModule, there is still only one UsersModule instance and one UsersService instance.
Shared state in a singleton service is shared across all consumers — design services to be stateless.
No need to worry about redundant instantiation when the same module is imported in multiple places.
The module graph is built once at startup — there is no runtime module registration after bootstrap.
Provider instances are reused across the application lifetime unless scope is changed to REQUEST or TRANSIENT.