One obvious advantage of using the EmbeddedRocksDBStateBackend with Flink is that it can spill to disk when there isn't enough memory. But if I'm prepared to give it enough memory so that it never needs to use the disk, how is that different from using the HashMapStateBackend?