# Continuation

Published articles for Continuation.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to turn callback functions into suspend functions or Flow

DevFeed: [How to turn callback functions into suspend functions or Flow](<https://devfeed.tech/articles/how-to-turn-callback-functions-into-suspend-functions-or-flow-39322.md>)

Original publisher: [Read original article](<https://kt.academy/article/interop-callbacks-to-coroutines>)

Published: 2025-07-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [callback](<https://devfeed.tech/topics/callback.md>), [functions](<https://devfeed.tech/topics/functions.md>), [Continuation](<https://devfeed.tech/topics/continuation.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [callback](<https://devfeed.tech/tags/callback.md>), [cancellation](<https://devfeed.tech/tags/cancellation.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [functions](<https://devfeed.tech/tags/functions.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A guide to adapting callback-based APIs for Kotlin Coroutines. It explains how to convert callbacks that return one value into suspending functions and how to adapt callbacks that emit multiple values into Flows, including handling cancellation and exceptions.

### Source excerpt

A guide on how to correctly convert callback-based functions into suspending functions or Flows in Kotlin Coroutines.

## Building applications with Kotlin and Arrow.kt in style

DevFeed: [Building applications with Kotlin and Arrow.kt in style](<https://devfeed.tech/articles/building-applications-with-kotlin-and-arrow-kt-in-style-25510.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/building-applications-with-kotlin-and-arrow.kt-in-style/>)

Author: Simon Vergauwen

Published: 2022-05-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [arrow](<https://devfeed.tech/tags/arrow.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [database](<https://devfeed.tech/tags/database.md>), [effect](<https://devfeed.tech/tags/effect.md>), [either](<https://devfeed.tech/tags/either.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [webinar](<https://devfeed.tech/tags/webinar.md>)

### AI overview

A webinar with Anton Arhipov demonstrates an end-to-end functional microservices workflow using Kotlin, Ktor, and Arrow, including request handling, database interaction, and response generation.

### Source excerpt

Webinar with Anton Arhipov on functional microservices with Ktor and Arrow.

## Kotlin's inline and suspend features

DevFeed: [Kotlin's inline and suspend features](<https://devfeed.tech/articles/my-favorite-kotlin-feature-25517.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/inline-and-suspend/>)

Author: Simon Vergauwen

Published: 2022-01-18T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [inlining](<https://devfeed.tech/topics/inlining.md>), [async](<https://devfeed.tech/topics/async.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [callback](<https://devfeed.tech/tags/callback.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [function](<https://devfeed.tech/tags/function.md>), [hof](<https://devfeed.tech/tags/hof.md>), [inlining](<https://devfeed.tech/tags/inlining.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

This article explains Kotlin's inline feature and suspend functions, focusing on how their combination supports efficient higher-order functions and imperative code for asynchronous workflows. It also describes compiler checks for suspending calls.

### Source excerpt

Over the last several years I've seen many discussions on Kotlin's features. Nullability is always a very high ranked one. I like it, but it's definitely not my favorite feature.

## Continuation\<R, A\> in Kotlin

DevFeed: [Continuation\<R, A\> in Kotlin](<https://devfeed.tech/articles/continuation-r-a-in-kotlin-25512.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/continuation-monad-in-kotlin/>)

Author: Simon Vergauwen

Published: 2021-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [effect](<https://devfeed.tech/tags/effect.md>), [either](<https://devfeed.tech/tags/either.md>), [exception](<https://devfeed.tech/tags/exception.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [monad](<https://devfeed.tech/tags/monad.md>), [suspend-function](<https://devfeed.tech/tags/suspend-function.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

A Kotlin tutorial introduces Continuation Passing Style and typed computations that can represent either a successful result or a typed failure. It develops an Effect type implemented as a suspend function and demonstrates a DSL for validation and file-reading examples.

### Source excerpt

Coroutines is one of the most liked features in Kotlin. Most people are familiar with the KotlinX Coroutines implementation, and many are also familiar with suspendCoroutine from the Kotlin Standard Library and then have also come across Continuation.

## Coroutines under the hood

DevFeed: [Coroutines under the hood](<https://devfeed.tech/articles/coroutines-under-the-hood-39241.md>)

Original publisher: [Read original article](<https://kt.academy/article/cc-under-the-hood>)

Published: 2021-09-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [functions](<https://devfeed.tech/topics/functions.md>), [union types](<https://devfeed.tech/topics/union-types.md>)

Tags: [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [functions](<https://devfeed.tech/tags/functions.md>), [internals](<https://devfeed.tech/tags/internals.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [stack](<https://devfeed.tech/tags/stack.md>), [state](<https://devfeed.tech/tags/state.md>), [union-types](<https://devfeed.tech/tags/union-types.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A deep dive into Kotlin coroutine implementation details, explaining suspension as state machines and describing how continuations preserve local state and represent the call stack. It also introduces continuation-passing style and the altered result types used under the hood.

### Source excerpt

A deep dive into how suspension and continuations work under the hood.

## Kotlin Continuations

DevFeed: [Kotlin Continuations](<https://devfeed.tech/articles/kotlin-continuations-27465.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/digging-into-kotlin-continuations>)

Author: Jorge Castillo

Published: 2020-09-03T11:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [callback](<https://devfeed.tech/tags/callback.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [exception](<https://devfeed.tech/tags/exception.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

This article explains Kotlin continuations as a form of control flow and describes how the Kotlin compiler transforms suspend functions into continuation-passing, callback-style code. It also covers continuation contracts, coroutine resumption, and when manually creating continuations may be useful.

### Source excerpt

Continuations represent the rest of a program. They are a form of control flow.

## Sandbox Dashboard part 3: Customers

DevFeed: [Sandbox Dashboard part 3: Customers](<https://devfeed.tech/articles/sandbox-dashboard-part-3-customers-15836.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/sandbox-dashboard-part-3-customers>)

Author: Tristan Sokol

Published: 2017-08-11T17:25:01Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [dashboards](<https://devfeed.tech/topics/dashboards.md>), [PHP](<https://devfeed.tech/topics/php.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [developer](<https://devfeed.tech/tags/developer.md>), [gui](<https://devfeed.tech/tags/gui.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [logging](<https://devfeed.tech/tags/logging.md>), [php](<https://devfeed.tech/tags/php.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [series](<https://devfeed.tech/tags/series.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This third tutorial in Square's Sandbox Dashboard series explains how to add a customers page to a sandbox developer dashboard. It covers listing customer information, deleting customers through a JavaScript-triggered PHP script, confirming the action with a dialog, and logging errors to the developer console using Square's PHP SDK.

### Source excerpt

A continuation on how to make a dashboard for your sandbox developer account

## RxJava 1 -\> RxJava 2 (Understanding the changes)

DevFeed: [RxJava 1 -\> RxJava 2 (Understanding the changes)](<https://devfeed.tech/articles/rxjava-1-rxjava-2-understanding-the-changes-25325.md>)

Original publisher: [Read original article](<https://kau.sh/blog/rxjava1-rxjava2-migration-understanding-changes/>)

Author: Kaushik Gopal

Published: 2017-06-21T07:00:00Z

Content type: tutorial

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [flowable](<https://devfeed.tech/tags/flowable.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [import](<https://devfeed.tech/tags/import.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [migration](<https://devfeed.tech/tags/migration.md>), [programming](<https://devfeed.tech/tags/programming.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [reactive-programming](<https://devfeed.tech/tags/reactive-programming.md>), [reactive-streams](<https://devfeed.tech/tags/reactive-streams.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [series](<https://devfeed.tech/tags/series.md>), [subscriber](<https://devfeed.tech/tags/subscriber.md>), [subscription](<https://devfeed.tech/tags/subscription.md>)

### AI overview

A migration guide for RxJava 1 users explains the major RxJava 2 changes, including its adoption of the Reactive Streams specification, four core interfaces, and package and Gradle dependency changes.

### Source excerpt

In case you haven't heard: RxJava2 was released sometime back. RxJava 2 was a massive rewrite with breaking apis (but for good reasons). Most dependent libraries have upgraded by now though, so you're safe to pull that migration trigger with your codebases. Folks starting out directly with Rx2 might enjoy this guide but it's the ones that started with Rx 1 that will probably appreciate it the most. 2 part series This is a continuation post in a 2 part series: Understanding the changes Disposing subscriptions Let's get started. In this first part, I want to dive into making sense of the Rx2 changes from the point of view of an Rx1 user. Why things changed with RxJava2 # tl;dr- Reactive Streams spec ## Reactive Streams is a standard for doing "reactive" programming and RxJava now implements the Reactive Streams specs with version 2.x. RxJava was sort of a trailblazer in reactive programming land but it wasn't the only library around. There were others that also dealt with reactive paradigms. But with all the libraries adhering to the Reactive Streams spec now, interop between the libraries is a tad bit easier. The spec per say is pretty straightforward with just 4 interfaces: Publisher (anything that publishes events, so Observable,Flowable etc. - more on this later) Subscriber (anything that listens to a Publisher) Subscription (Publisher.subscribe(Subscriber) => Subscription when you join a Publisher and a Subscriber, you are given a connection also called a Subscription) Processor (a Publisher + a Subscriber, sound familiar? yep Subjects for us RxJava 1 luddites) If you're slightly more curious about the design goals, I also suggest the following resources: What's different in 2.0 wiki page - this is really the place I kept coming back to and referencing when I needed to understand the details Fragmented Ep #53 with JakeWharton (forgive the shameless promotion) - ultimate lazy person's guide to understand why/what things changed with RxJava2, as explained by an act