Live data from Hacker News

Show HN: Rust macro utility for batching expensive async operations

github.com

1–10 of 11 posts

Re: Show HN: Rust macro utility for batching expensive async operations

#3
Need to explain in the readme what it does, and what for.

Why would I need such an abstraction? What is the cost?

Why is that any better than calling the function with a single argument in the first place?

I assume here it is maintaining a vector of futures and and a sibling vector of input values. And when this vector reaches the window size or something like that, it calls the original function with must returns a vector of results, which are then used to resolve the futures.

Re: Show HN: Rust macro utility for batching expensive async operations

#7

Are window sizes dynamic, or do they need to be specified at build time?

Need to be specified at build time, but you can set a dynamic window length based on the current buffer length. https://github.com/hackermondev/batched?tab=readme-ov-file#b...

Re: Show HN: Rust macro utility for batching expensive async operations

#8

The API is great. Will definitely try it out. I have a use case already. How difficult would it be to extend this to support timed flushes? Like, every 200ms or so, regardless the fill of the buffer?

That's what the `window` option does (https://github.com/hackermondev/batched?tab=readme-ov-file#b...). After the first item is added to the buffer, it waits for the maximum window time, then calls the inner function with the buffer fill.

Re: Show HN: Rust macro utility for batching expensive async operations

#9
post #3

Need to explain in the readme what it does, and what for. Why would I need such an abstraction? What is the cost? Why is that any better than calling the function with a single argument in the first place? I assume here it is maintaining a vector of futures and and a sibling vector of input values. And when this vector reaches the window size or something like that, it calls the original function with must returns a…

Thanks for the feedback, I've updated the README!

Re: Show HN: Rust macro utility for batching expensive async operations

#10

Are window sizes dynamic, or do they need to be specified at build time?

Need to be specified at build time, but you can set a dynamic window length based on the current buffer length. https://github.com/hackermondev/batched?tab=readme-ov-file#b...

Ah gotcha. So one use case that immediately comes to mind with batching is retries with batch bisection. While you wouldn’t need it to be arbitrarily dynamic, it would be useful to support some sort of retry aware divide-by-two mechanism
Post reply on HN