Сервисы уровня домена это то место, где хранится бизнес логика вашего приложения (при анемичной модели, то есть той, которая не имеет в себе бизнес логики), сервисы уровня приложения, это вспомогательная логика для приложения, но не связанная с доменом. Контроллеры же - транспорт. Их задача запрос принять, обработать, вызвать кого нужно, сервисы из уровня домена, сервисы уровня приложения и т.д. и отдать ответ обратно. Логики в них должно быть по минимуму. По логике описанной вами ArticleService не должен ничего сам сохранять, это задача ИМХО StorageService, и ArticleService должен эту работу ему делегировать.