Using Ktor 3.0 with All the Shiny Things • Garth Gilmour • GOTO 2024

This presentation was recorded at GOTO Amsterdam 2024. #GOTOcon #GOTOams https://gotoams.nl Garth Gilmour - Delivered over 1,000 Masterclasses & Author of 40+ Training Courses & Developer Advocate at JetBrains ‪@garthgilmourni‬ RESOURCES   / garthgilmour     / garthgilmour     / garthgilmour   https://github.com/garthgilmourni Links https://github.com/garthgilmourni/got... https://github.com/ktorio/ktor-samples https://ktor.io/docs/server-testing.html ABSTRACT Many teams use Kotlin and Ktor solely to create and consume RESTful HTTP services. They build modestly sized microservices and clients that perform a limited set of tasks well. These are completely valid use cases, but only scratch the surface of what is possible with Ktor in the latest release. Ktor boasts an elegant and powerful testing library with built-in mocking. You can integrate with Koin for DI, GraphQL for querying and OpenTelemetry for observability. Using Kotlin Native and Gradle you can build native images and bundle them in Docker containers. Last but not least you have fine grained control over every aspect of the framework, and can easily extend it by creating your own plugins. These can optionally be published to a new public registry. To then be reviewed, reused, and refined by the community. This talk will provide a whistle-stop tour of all the above. We will take a simple case study and incrementally layer on the shiny features. We will also discuss the ‘under the hood’ improvements in V3 - such as performance gains resulting from the migration to kotlinx-io. By the end you will have a comprehensive understanding of the intermediate and advanced functionality which Ktor can provide. [...] TIMECODES 00:00 Intro 01:24 What makes Ktor different? 07:59 Prototyping with Kotlin notebook 11:19 How do we build the service? 16:47 How did we build the service? 17:37 What are our test cases? 19:38 Creating unit tests 21:58 But wait! There's more... 22:46 Koin /Ktor integration 25:10 But wait! There's more... 26:00 GraphQL 28:11 WebSockets 31:00 But wait! There's more... 31:28 KMP 33:33 OpenTelemetry 35:46 Retries 39:12 3.0 Features 39:50 Conclusion 41:41 What did we learn? 42:34 Outro Download slides and read the full abstract here: https://gotoams.nl/2024/sessions/3231 RECOMMENDED BOOKS Kodeco Team, Kevin D. Moore, Carlos Mota & Saeed Taheri • Kotlin Multiplatform by Tutorials • https://amzn.to/3Ruh5De Venkat Subramaniam • Programming Kotlin • https://amzn.to/2MIC8D1 Robert Nagy • Simplifying Application Development with Kotlin Multiplatform Mobile • https://amzn.to/3t9Vjew Marcin Moskała • Kotlin Coroutines: Deep Dive • https://amzn.to/3R6ChOh Ken Kousen • Kotlin Cookbook • https://amzn.to/3TaCGBM Alexey Soshin • Kotlin Design Patterns and Best Practices • https://amzn.to/3Gt3rtK Dmitry Jemerov & Svetlana Isakova • Kotlin in Action • https://amzn.to/3uRU1Fu   / gotocon     / goto-     / goto_con     / gotoconferences   #Kotlin #Ktor #Ktor3 #Koin #GraphQL #Kotlinlang #OpenTelemetry #KMP #Multiplatform #Android #iOS #Desktop #JSON #WebSocket #KotlinCoroutines #Coroutines #GarthGilmour Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConf...

KotlinConf 2019: Ktor for Mobile Developers: Fear the server no more! by Dan Kim
▶︎

KotlinConf 2019: Ktor for Mobile Developers: Fear the server no more! by Dan Kim

Model Context Protocol (MCP) Explained for Beginners: AI Flight Booking Demo!
▶︎

Model Context Protocol (MCP) Explained for Beginners: AI Flight Booking Demo!

Billionaire's WARNING: I'm SELLING. The Crash Is Already Here!
▶︎

Billionaire's WARNING: I'm SELLING. The Crash Is Already Here!

Spring Boot & Kotlin: Pain or Gain? by Urs Peter @ Spring I/O 2024
▶︎

Spring Boot & Kotlin: Pain or Gain? by Urs Peter @ Spring I/O 2024

How to Actually Build Mobile Apps with AI in 2026 | A Complete Beginner's Tutorial
▶︎

How to Actually Build Mobile Apps with AI in 2026 | A Complete Beginner's Tutorial

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Pairing with Tomasz Tomczyk on his AI Workflow
▶︎

Pairing with Tomasz Tomczyk on his AI Workflow

Kotlin Multiplatform Mobile & Ktor: Build a Social Media App - Part 3 Backend Authentication
▶︎

Kotlin Multiplatform Mobile & Ktor: Build a Social Media App - Part 3 Backend Authentication

Java, How Fast Can You Parse 1 Billion Rows of Weather Data? • Roy van Rijn • GOTO 2024
▶︎

Java, How Fast Can You Parse 1 Billion Rows of Weather Data? • Roy van Rijn • GOTO 2024

Building Software Better: API Lifecycle Management for Developers • Erik Wilde • GOTO 2024
▶︎

Building Software Better: API Lifecycle Management for Developers • Erik Wilde • GOTO 2024

Coroutines: Concurrency in Kotlin
▶︎

Coroutines: Concurrency in Kotlin

Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours]
▶︎

Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours]

BLE Advertising MASTERCLASS - Part 1 | Legacy Advertising Programming Workshop
▶︎

BLE Advertising MASTERCLASS - Part 1 | Legacy Advertising Programming Workshop

System Design Explained: APIs, Databases, Caching, CDNs, Load Balancing & Production Infra
▶︎

System Design Explained: APIs, Databases, Caching, CDNs, Load Balancing & Production Infra

CLAUDE CODE ADVANCED FULL COURSE (3 HOURS)
▶︎

CLAUDE CODE ADVANCED FULL COURSE (3 HOURS)

Full Walkthrough: Workflow for AI Coding — Matt Pocock
▶︎

Full Walkthrough: Workflow for AI Coding — Matt Pocock

The Right Way to Build AI Apps in 2026 | Next.js 16 Course
▶︎

The Right Way to Build AI Apps in 2026 | Next.js 16 Course

Real-Time WebSockets Course | Build a Live Sports Dashboard with Node.js & PostgreSQL
▶︎

Real-Time WebSockets Course | Build a Live Sports Dashboard with Node.js & PostgreSQL

What Is This OpenTelemetry Thing? • Martin Thwaites • GOTO 2024
▶︎

What Is This OpenTelemetry Thing? • Martin Thwaites • GOTO 2024

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker
▶︎

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker