In this chapter, we discussed IIS threading models and making changes to .NET Core implementations of a server by going from using libuv to .NET Core 2.0 in order to manage sockets from .NET Core 2.1 onward. We also discussed ways to improve the performance of IIS, Kestrel, and some thread pool algorithms such as Starvation Avoidance and Hill Climbing. We introduced the concepts of microservices and various threading patterns that are used in microservices, such as single thread-single process microservices, single thread-multiple process microservices, and multiple threads-single process microservices.
We also discussed the process of using async in ASP.NET MVC Core 3.0 and introduced the new concept of async streams in .NET Core 3.0, as well as its usage. Async streams can be very handy in big data scenarios in which the load on servers can be huge due to a rapid influx...