# Throttling in RxJava 2

DevFeed: [Throttling in RxJava 2](<https://devfeed.tech/articles/throttling-in-rxjava-2-38614.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2019_06_24_throttling_in_rxjava_2/>)

Published: 2019-06-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>)

Tags: [examples](<https://devfeed.tech/tags/examples.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [ux](<https://devfeed.tech/tags/ux.md>)

## AI overview

A tutorial explaining the differences between RxJava 2 throttle operators, including throttleFirst, throttleLast, throttleLatest, and throttleWithTimeout/debounce, and when to use them. It also discusses the user-experience implications of using debounce for repeated button clicks.

## Source excerpt

Introduction I don't know for what reason but I see from time to time same misunderstanding on different throttle operators in RxJava. Usually nobody says about throttle, instead by default everyone says that debounce can be used. Especially using debounce to avoid multiple clicks on buttons is commonly suggested, which I believe is a bad UX (some examples here and here). Let's finally look at available options in RxJava and find out when it is better to use what.