top | item 21938792

(no title)

mavdi | 6 years ago

Not questioning your judgement but interested to know about the factors moving you away from Kinesis.

discuss

order

addisonj|6 years ago

Biggest pain points with Kinesis:

- ordering is really hard, you don't get guaranted ordering unless you write one message at a time or do a lot of complexity on writes (see https://brandur.org/kinesis-order) and the shards are simply too small for many of our ordered use cases

- cost, we just don't send some data right now because it would just be too much relative to the utility of the data (we would need like 250 shards)

- retention, long term, we want to store data in Pulsar with up to unlimited retention so we can rebuild views. There is still some complexity there (like getting parallel access to segments in a topic for batch processing) but it is much further along than any other options

- client APIs for consumer. We are a polyglot shop and really the only language where consuming Kinesis isn't terrible is Java (and other jvm languages). For every other language, we use lambda and while lambda is great it is still distinct deploy and management process from the rest of the app. Being able to deploy a simple consumer just as part of the app is really nice

nostrebored|6 years ago

Is there any reason you've decided not to use Dynamo to manage your materialized views?

Do you need to be able to generate a materialized view for a specific time window?

It feels weird to me to use your pub sub system to handle your persistent storage for views, but I am definitely missing context into pulsar and your use case

mavdi|6 years ago

Thanks for the write up. We are moving away from Kafka to Kinesis, and will consider these points mentioned.

ckdarby|6 years ago

Kinesis is very expensive in the long run. There's almost always an intersection point on AWS where you need to consider moving away from AWS services/"managed services" and bring it in house.