<div>I still don&#39;t understand your point. </div><div>The &quot;advantage of ExecutionHandler&quot; has no relation to timers or triggers of any kind. I am using ExecutionHandlers in my projects and enjoying all of its advantages, so they are
not &quot;gone&quot;, I can assure you. And yes, I have some periodic tasks which send data over network. They are managed by ScheduledThreadPool, and  I don&#39;t find it &quot;boring&quot; in any way.  </div><div>Netty is the framework which handles NETWORK events, not business logic &quot;events&quot; of any kind. Your application may wish to send something to a client for million reasons: when some timer expires, when user clicks some button in GUI, when you receive signal from some hardware device, etc. Netty just can not and should not know about all these reasons. If you need to write something using Netty, you just call channel.write(..). That&#39;s it. I cannot imagine any simpler way to do this.<br>
</div>
And yes, &quot;business object needs to be designed carefully&quot; - this is always true, and no framework will design your business logic for you.<br>