Cardinal streams was designed for streaming blockchain data and metadata across messaging systems such as Kafka. The initial use case is the Ethereum blockchain, it was designed to adhere to principles that will be applicable across many chains.
The protocol specification can be found here.