Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does skip_describe_stream actually skip anything? #27

Open
akursar opened this issue Jan 30, 2021 · 2 comments
Open

Does skip_describe_stream actually skip anything? #27

akursar opened this issue Jan 30, 2021 · 2 comments

Comments

@akursar
Copy link
Contributor

akursar commented Jan 30, 2021

As far as I can tell, enabling skip_describe_stream doesn't skip anything. self.shards is set to an empty list, but the describe stream is still performed. Let me know if I'm missing something but it doesn't seem like there's any change in behavior when this is set.
I'm trying to figure this out because I'm concerned about the use of kinesis's DescribeStream api. This api has a 10 ops/s account wide limit, which has basically made it unusable for us for use in our clients. There are just too many clients across our aws account to have each reader/writer trying to hit this at runtime.
I can understand polling this after attempting to create a stream (though there's a DescribeStreamSummary api which has 2x higher limit that I think is preferred), but I'd really like to disable stream creation and provision externally and never attempt to hit this api in producer/consumer services, which I think is what I'd look for when skipping describe stream.
Consumers of course need to know about shards. There's a ListShards api which is newer but affords 100 ops/s per stream and is what we are using today in our consumer services.
I'd like to propose moving to these APIs and refactoring so that only the ListShards api is hit when producers/consumers are configured not to create the streams. What do you think?

@hampsterx
Copy link
Owner

hi @akursar yes you are right its not actually skipping, oops! I think I put it in for unit testing but ended up not using it. The use case I had for Kinesis was long lived consumer/producers so never encountered this problem before.

And yes using those alternate API sounds heaps better, PR would be amazing :)

@akursar
Copy link
Contributor Author

akursar commented Feb 1, 2021

Supercool. I'll try to make a PR with some draft changes but not likely to happen this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants