<@U04E6JRA20H> We have two non-trivial production ...
# ktor
d
@Rasheed We have two non-trivial production apps written in Ktor and another under development. Ktor provides a clean, well designed API tailored for the Kotlin language and libraries. We had great development velocity on those projects. We still use Spring Boot on some enterprise projects because its a larger framework that covers all the enterprise requirements out of the box. We default to Ktor if we don't need those extras. I hope JetBrains continues to invest heavily in Ktor because it is a joy to use.
t
i guess the obvious followup question: What are those extras (enterprise requirements?) you are referring to?
👍 1
d
Hi @Thomas Urbanitsch. Ktor is a less opinionated and lighter framework than Spring Boot. Paraphrasing from a Slack conversation about Ktor vs. Spring Boot at our company:
Ktor is not trying to necessarily solve everything that Spring Boot does which I see as both a positive and a negative. To me, it seems like Ktor's sweet spot is for lighter weight microservices and/or apps that may not need to integrate with a lot of external services.
That being said, I would prefer the Kotlin/Spring Boot in a scenario for most full stack applications that need to integrate with a full enterprise set of services (integrations with existing line of business apps, complex database setups, multilevel caching, etc.) primarily because adding those integrations typically amounts to adding a jar file to the dependencies and then potentially tweaking a few settings. If I ever run into an issue with Spring Boot, I can typically do a search and find a fix/solution right away. On the other hand (I could be wrong here), I would expect that process to be a bit more difficult with Ktor as it's newer and its integrations have not been tested as much. I would worry that the issue I could be running into as a developer may not have been seen before and I could end up wasting valuable cycles as a result.
Summary: Ktor is good for microservices and can serve as a middle tier for some apps. SpringBoot is generally better for full-blown enterprise apps. There is no golden hammer :-)
@Rasheed Start with https://ktor.io/learn/ Get all those projects up and running on your machine. Then try the video classes and books at Kodeco. That is how we learned.