Services¶
Сервис - это действие не имеющее состояния, которое моделируется с помощью функции. Сервисы слоя Domain (или Entities в терминологии Clean Architecture) представляют только те действия, которые могут выполняться сотрудниками без компьютеров, например с помощью картотеки. Т.е. сервисы этого слоя не могут делать рассылки, выборки в БД и т.п.
В нашем приложении нет сервисов.
Сервисом будет, например перевод денег:
(defn money-transfer [ifrom ito amount]
(dosync
(alter ifrom update :account - amount)
(alter ito update :account + amount)))
При этом, в слое Use-cases будет свой сервис перевода денег, использующий money-transfer
и, например, отправляющий уведомление получателю.
Сервисы могут работать как с идентичностями, как в примере выше, так и с просто состоянием.