A global module in NestJS is a module decorated with @Global() that makes its exported providers available across the entire application without requiring each consuming module to import it:

@Global()
@Module({ controllers: [CatsController], providers: [CatsService], exports: [CatsService] })
export class CatsModule {}

Global modules should be registered only once (typically by the root module). Making everything global is discouraged — it reduces boilerplate but harms code clarity and maintainability. Global modules can also be created dynamically by setting global: true in a DynamicModule return object.