Your setup looks correct. Application services often come in two flavors:
Application features: email notifications, authorization, persistence, etc. All functions besides the domain are included in your system.
Alignment of applications: to satisfy the precedent, you need the coordinates of the functions of the application and the domain. All plumbing comes here.
Keep in mind that application coordination models use cases; therefore, they do not always correspond to 1 service service = 1, since in case of use there can be more than 1 process.
Controller App.CommentingService.Comment() //coordination of below features and domain App.AuthService().Autorize(); //feature Domain.CommentingService.Comment(); //domain App.PersistenceService().Persist(); //feature App.NotificationService().SentNotificationToUser(); //feature
Why don't I just do all of this in an application to reduce confusion?
Segregation of applicability, loose coupling, inception of dependencies, etc .; all this is good for many reasons. I will give you a real example that I recently participated: having an assembly of free nodes (this was in the .NET framework) using only domain services, allows me to host the same domain without changes in the web application, DesktopApp and the SOAP web service simply changing application coordination services, as the requirements and use cases are different for each application.
About what is in the domain and what is not. It is very difficult to give you a direct answer, because it depends on what your domain is or not.
i.e.
Make sure the user has not posted more than 5 comments at the last minute
You must ask, why are you throttling? To prevent a messy interface? Why? Prevent Denial of Service Threat? Or breaks the rule in your "game" because your "game" just gives the user limited attempts during spam? This is what indicates that something is a domain or application.