Two implementations of state backends are available:
RocksDB
An embedded key/value store keeps its working state on disk.
Overhead
Accesses and updates involve serialization and deserialization.
Java heap-based state backend
Keeps its working state in memory, on the Java heap.
Risk
Large amount state will cause OOM.
Conclusion
Both of these state backends are able to do asynchronous snapshotting, meaning that they can take a snapshot without impeding the ongoing stream processing.