DDDでStreamの表現の仕方について
FRPを使ったアプリを作っていて思ったのですが、StreamはDDDでどう表現すれば良いのでしょうか?
「GitHubから通知を受け取ってMacの通知を送る」ということをやりたいのですが
// stream
let stream = GitHubStream()
stream
.generateNotificationsStreamAtInterval(10 as NSTimeInterval, since: NSDate())
.filter { ($0 as Notification).reason == .Mention }
.filter { ($0 as Notification).subject.isComment() }
.flattenMap { (notification) in
let notification = notification as Notification
return stream.generateCommentStream(
notification.repository.owner.login,
repoName: notification.repository.name,
commentId: notification.subject.commentId!
)
}.map { (comment) in
let comment = comment as Comment
return UserNotification(
title: "Hoy",
subtitle: nil,
informativeText: comment.body,
contentImage: NSImage(contentsOfURL: NSURL(string: comment.user.avatarUrl)!),
identifier: nil,
openUrl: comment.htmlUrl
)
}
.subscribeNext { (userNotification) in
let userNotification = userNotification as UserNotification
userNotification.notify()
}
ドメイン層なしにこんな感じのコードになっています。
GitHubStreamとUserNotificationはインフラ層になると思うのですが、インフラ層からリアルタイムに流れてくるデータをどのようにドメイン層で扱えば良いのでしょうか。
よろしくお願いいたします。