In much of the literature I've read online with respect to multi-layered architectures, many people describe how to create the simple application where:
Often, the articles will describe these concepts while adhering to Eric Evan's Domain-Driven Design.
Despite the good resources online, there isn't much guidance for applications that need to be continuously communicating with external devices. Consider the following:
My understanding is that there are two viable solutions for this type of I/O in the multi-layered context.
BackgroundWorker) to continuously make queries to application services which return ONLY the data required by the view in question.
I think that solution #1 is better aligned with the examples I've come across, but my concern is that this is NOT a scalable solution. As the amount of continuous I/O increases, spinning off many background threads (for each view) not only causes us to violate DRY, but it degrades performance because of many, small I/O requests instead of few, large I/O requests.
How should we approach multi-layered architectures that need large amounts of continuous communication?