
The migration scheme can be found in their documentation. BroadcastChannel and ConflatedBroadcastChannel are marked as ObsoleteCoroutinesApi in the favor or SharedFlow and StateFlow.
The full rationale behind this change can be found here. They provide better type safety, are less error-prone, and have a consistent future-proof naming scheme.
New methods receiveCatching, onReceiveCatching trySend, tryReceive, and trySendBlocking along with the new result type ChannelResult are introduced. Channel operators deprecated with ERROR are now HIDDEN. Previously deprecated SendChannel.isFull declaration is removed. Existing offer, poll, and sendBlocking methods are deprecated, internal receiveCatching and onReceiveCatching removed, receiveOrNull and onReceiveOrNull are completely deprecated. Major channels API rework (#330, #974). Changelog relative to 1.5.0-RC can be found in the end. Note that this is a full changelog relative to 1.4.3 version. Internal DebugProbesKt (used in the debugger implementation) are moved from debug to core module. Any exceptions from CoroutineDispatcher.isDispatchNeeded are now considered as fatal and are propagated to the caller (#2733). Fixed linear stack usage for CompletableFuture.asDeferred when the target future has a long chain of listeners (#2730). Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators (#2749). Fixed a spurious ClassCastException in releaseInterceptedContinuation and IllegalStateException from tryReleaseClaimedContinuation (#2736, #2768). Closing a Handler underlying Handler.asCoroutineDispatcher now causes the dispatched coroutines to be canceled on Dispatchers.IO (#2778). CoroutineDispatcher.releaseInterceptedContinuation is now a final method (#2785). CopyableThrowable is allowed to modify the exception message during stacktrace recovery (#1931). Reactive streams are updated to 1.0.3 (#2740). Introduced overloads for Task.asDeferred and Task.await that accept CancellationTokenSource for bidirectional cancellation (#2527). RemoveOnCancelPolicy is now part of the public contract. If the target executor is ScheduledExecutorService, then its schedule API is used for time-related coroutine operations. Executor.asCoroutineDispatcher implementation improvements (#2601):. Atomic update, getAndUpdate, and updateAndGet operations of MutableStateFlow (#2720). Various documentation and guides improvements. Mutex implementation is made completely lock-free as stated (#2590). Optimizations of Mutex implementation (#2581). Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#2826). New native targets for Apple Silicon are introduced.