The StreamMessageDatasource is a generic, extensible datasource for the Carbon indexing framework. It provides an abstract interface to feed a unified stream of account and transaction messages into Carbon, decoupling the framework from specific transport layers like Kafka, PubSub, or Solana Geyser plugins.
It is designed to consume UnifiedMessage variants, which allow you to mix account updates and transaction updates in a single stream.
pub enum UnifiedMessage {
Account(AccountUpdate),
Transaction(Box<TransactionUpdate>),
}