I wonder if it is possible in Flink to share the state among operators.
Say, for instance, that I have partitioning by key on an operator and I need a piece of state
In general, Flink's design does not allow to read from or write to state of other subtasks of the same or different operators. As you said, you can use broadcast
to make state globally available. The queryable state features is intended for external user queries.
However, I heard of users who leveraged this features in an operator to fetch data from other operators of the same job. I don't know how well this works (stability and performance-wise). I would point you to the user mailing list for a more in-depth technical discussion if you would like to try this out.