How it works
Amazon Connect can stream CTRs to either Kinesis Data Streams or Kinesis Data Firehose. The two services solve different problems. Firehose is a managed ETL pipeline: it batches incoming records and delivers them to one pre-configured destination — S3, Redshift, or Splunk. Streams is a durable buffer: records sit on the shard for the retention window (24 hours by default, up to 365 days) and any number of consumers read them independently. When CTRs land on a Firehose, only the destination configured on that Firehose receives them. When CTRs land on a Stream, Operata reads them, your BI tool reads them, and any future consumer also reads them — each tracking its own position on the shard. Operata recommends Kinesis Data Streams as the destination Amazon Connect writes to, with an optional Firehose downstream of the Stream for customers who also need Firehose’s S3 or Splunk delivery. The Stream becomes the fan-out point; the Firehose becomes one consumer among several.Why Operata uses Streams over Firehose
Firehose is the right choice if exactly one system consumes the CTRs and that system is a destination Firehose natively supports. The moment a second consumer needs the same data, a Firehose-only setup forces either duplicate streaming configurations on the Amazon Connect instance (one per consumer) or a custom replay mechanism out of S3. Both are operationally noisy compared to placing a Stream in front. The cost trade-off is small. A Kinesis Data Stream with on-demand capacity charges per GB ingested and per GB read — the same shape as Firehose. The added cost of running both Stream and Firehose for a single-destination use case is the Stream’s ingest charge, which is the smaller of the two line items for typical CTR volumes. The latency trade-off is also small. Operata reads from the Stream within seconds of a record landing; Firehose delivers in micro-batches with a configurable buffer (60 seconds or 1 MB by default). For real-time observability, Stream is faster. For batch delivery to S3, Firehose is still doing the right job — it just reads from a Stream now, not directly from Amazon Connect.Related
- Cloud Collector — the AWS-side service that reads CTRs off the Stream.
- Contacts and interactions — what Operata calls a contact once the Cloud Collector has read its CTR off the Stream.
- Signals and observations — the data Operata stores after processing a CTR.
- Webhooks events —
contact.completedfires once Operata has read the CTR from the Stream and processed it. - Contact record — the full contact record Operata builds from the CTR on the Stream.