title: Read and write transactions in Amazon Kinesis
body: <p>I'm new to Kinesis, so this might seem like a very basic question, but I have not been able to find a clear answer to what the actual difference is between a read and write transaction in a Kinesis stream.</p>
  
  <p>Relevant parts from <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html" rel="noreferrer">Amazon Kinesis Limits</a>:</p>
  
  <blockquote>
    <ul>
    <li>GetShardIterator can provide up to 5 transactions per second per open shard.</li>
    <li>GetRecords can retrieve 10 MB of data.</li>
    <li>Each shard can support up to 5 transactions per second for reads, up to a maximum total data read rate of 2 MB per second.</li>
    <li>Each shard can support up to 1024 records per second for writes, up to a maximum total data write rate of 1 MB per second (including partition keys). This write limit applies to operations such as PutRecord and PutRecords.</li>
    </ul>
  </blockquote>
  
  <p>It clearly mentions 5 reads and 1024 writes per second per shard. Why are reads so much more expensive than writes, or is there a crucial Kinesis concept here I haven't grasped?</p>