This document discusses a new technology called Streaming Ledger that provides ACID transaction guarantees for streaming data. Streaming Ledger allows applications to read and modify multiple data rows/keys within a transaction, sharing state between streams. It uses logical clocks to define a conflict-free processing schedule and handles key contention well. Streaming Ledger is built on Apache Flink and provides a new capability beyond Flink's existing exactly-once processing of single keys.