Intended for intermediate Java developers familiar with web development, networked services, and enterprise Java frameworks like Spring or Java EE. No prior experience in asynchronous or reactive programming is required. As enterprise applications become larger and more distributed, new architectural approaches like reactive designs, microservices, and event streams are required knowledge.