Transient: Used by default if the service does not retain state.

Scopeted: Used for DbContext, UnitOfWork, or any service that needs to retain state during a request.

Singleton: Used for Cache, Configuration, Logger factory, HttpClient (in combination with IHttpClientFactory) 1000 games, or heavy services that need to be initialized only once.