Netty: Is it always required volatile attributes when then handler is after an OrderedMemoryAwareThreadPoolExecutor?
===

I am using instance variables in my ChannelHandlers to keep track of channel state. But my pipeline configuration is using an OrderedMemoryAwareThreadPoolExecutor. 

That means every upstream event is always handled sequentially, there is no concurrency and I don't need worry about thread safety issues. 

But in any case the handler will be called by different threads of the ExecutionHandler. So am I forced to declare all the instance variables as volatile to make them visible between threads although they are never called concurrently?

All documentation I've read about volatile variables says that it is needed if you want to guarantee that modifications are visible across threads, but they don't specify if this is also necessary if you guarantee that your threads always access those variables sequentially.

I also see that current netty codecs doesn't use volatile attributes, so can we use then after an OrderedMemoryAwareThreadPoolExecutor?