我們創建了一個電子書閱讀器的Web應用程序。所以有一點要記住的是,這個領域並不完全是閱讀一本實體書。我們現在試圖通過存儲用戶訪問的電子書頁面的信息來收集用戶的閱讀行爲。由於這些信息發送到數據倉庫,我們認爲從書籍控制器發起事件是正確的方式。引發事件或發送命令?
bus.Publish()
但我們不知道它應該是一個發佈或發送因爲有真的只有一個消費者對這個事件,這是我們的商業智能團隊。我們還讀到,從Web應用程序發佈是不可取的(http://www.make-awesome.com/2010/10/why-not-publish-nservicebus-messages-from-a-web-application /)。因此,現在替代方案是使用總線。發送(RecordPageAccessedCommand)
但是,上述命令不會改變我們的應用程序狀態。那它真的是一個命令嗎?我有一種感覺,我們犯的錯誤是使用NServiebus的功能(發佈,發送),並試圖將其與命令或事件等同起來。
請讓我知道這是什麼解決方案。
訪問時是否可以增加書上的計數器?然後DW可以稍後ETL計數。您的應用可能對這些數據感興趣,以識別熱門書籍或提出建議。 –
@AdamFyles是的,這是可能的。這就是我們目前所做的。有幾個這樣的事件,我們希望轉移到一個基於事件的非阻塞模型用於性能目的。 – darthjit