Good point. But what exactly is shared logic? can you give me a few example of features/concepts you would put there? I see no problem in creating a duck that handles some common data/state. Plus if you are careful and don’t over use this, you can easily import actions and types from one duck to another if you need to handle, for example, one action type in multiple reducers.