We use a variety of frameworks/templates/patterns for our architecture:
The Actor Framework is used for asynchronous UI operations and long-running data processing tasks.
Queued Message Handlers (not using DQMH or QMH template) handle simple asynchronous tasks.
Action Engines encapsulate privately shared data for our translation and general I/O libraries.
(Queued) State Machines ensure that everything runs in order.
The proxy pattern is used to interface most customer libraries.
We have our own frameworks for the test execution engine and test libraries (message based).
I find the publicly available frameworks and templates (DQMH, Messanger Library, NI templates, etc...) very valuable for learning and to get things started quickly.
More advanced projects, however, require a deeper understanding of the underlying patterns in order to develop your own architecture (which may or may not utilize these frameworks/templates).
In your case these are synonymous 😋
"Any sufficiently advanced technology is indistinguishable from magic." (Arthur C. Clarke)
For some reason that just popped into my mind...
If your entire architecture and thought process is fundamentally based on actors, any small project will of course have to depend on it as well. That is, unless you are willing to rethink (and probably reimplement) the fundamental architecture.
Then again, why reinvent the wheel?