Domain services: To enable coordinating operations among more than one aggregate – for example, transferring money between two checking accounts at a retail bank.
Infrastructure services: To enable interactions with a utility that is not core to the business – for example, logging and sending emails at the retail bank.
Application services: To enable coordination between domain services, infrastructure services, and other application services – for example, sending email notifications after a successful inter-account money transfer.