| Interface | Description | 
|---|---|
| ExtendedSystemAdmin | Interface extends the more generic SystemAdmin interface
 TODO: Merge this interface method with SystemAdmin when we upgrade to JDK 1.8 | 
| SystemAdmin | Helper interface attached to an underlying system to fetch information about
 streams, partitions, offsets, etc. | 
| SystemConsumer | 
 SystemConsumer is the interface that must be implemented by any system that
 wishes to integrate with Samza. | 
| SystemFactory | Build the  SystemConsumerandSystemProducerfor
 a particular system, as well as the accompanyingSystemAdmin. | 
| SystemProducer | SystemProducers are how Samza writes messages from  StreamTasks to outside systems,
 such as messaging systems like Kafka, or file systems. | 
| SystemStreamPartitionMatcher | 
| Class | Description | 
|---|---|
| IncomingMessageEnvelope | This class represents a message entvelope that is received by a StreamTask for each message that is received from a
 partition of a specific input stream. | 
| OutgoingMessageEnvelope | An OutgoingMessageEnvelope is sent to a specified  SystemStreamvia the appropriateSystemProducerfrom the user'sStreamTask. | 
| SystemStream | Streams in Samza consist of both the stream name and the system to which the stream belongs. | 
| SystemStreamMetadata | SystemAdmins use this class to return useful metadata about a stream's offset
 and partition information. | 
| SystemStreamMetadata.SystemStreamPartitionMetadata | Provides offset information for a given SystemStreamPartition. | 
| SystemStreamPartition | Aggregate object representing a both the  SystemStreamandPartition. | 
| SystemStreamPartitionIterator | Iteratorthat wraps aSystemConsumerto iterate over the messages
 the consumer provides for the specifiedSystemStreamPartition. | 
| Enum | Description | 
|---|---|
| SystemStreamMetadata.OffsetType | OffsetType is an enum used to define which offset should be used when
 reading from a SystemStreamPartition for the first time. |