Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Is Spring still the king? Current state of mode...

Is Spring still the king? Current state of modern JVM backend frameworks

Technology landscape is ever-changing. Status quo is not an option in modern IT. This forces us to be constantly up-to-date with available solutions. Nowadays, comparing competing backend frameworks we need to take into consideration plethora of various aspects. What is more, major differences between currently available solutions are not always crystal clear at first glance. During this talk, we are going to verify whether popular and widely adopted solutions still keep up with newcomers, how to choose the right tool for the job and how to avoid “shinny thing” fallacy.

Piotr Łaskawiec

October 19, 2024
Tweet

Transcript

  1. Who am I? • Pr a gm a tic Softw

    a re Architect • Cre a ting softw a re for ne a rly 20 ye a rs • Helping comp a nies to deliver re a l v a lue • Spring Certi f ied Profession a l
  2. 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

    Spring 0.9 Spring 1.0 Spring 2.0 Spring 2.5 Spring 3.0 2013 Spring 3.1 Spring 4.0 2011 JSR-250 @Service/@Controller Auto-sc a E f New be a Support for JPA a JSP t a Dyn a T a J a SpEL REST support Modules reorg a Pro f C a Code equiv a Support for Servlet 3 code-b a J a WebSockets Core Cont a
  3. Dropwizard • Jetty • Jersey • J a ckson •

    Metrics • Logb a ck • Hibern a te V a lid a tor • JDBI • Liquib a se • Freem a rker / Must a che Tool for getting sh… things done
  4. Spring Boot King’s new clothes • St a nd a

    lone a pplic a tions with embedded Tomc a t/Jetty • Auto-con f igur a tion • St a rters • Production-re a dy code • All the superpowers of Spring Fr a mework ecosystem
  5. • Cre a ted by the te a m responsible

    for Gr a ils fr a mework • AOT wiring • Go a ls • F a st st a rtup time • Reduced memory footprint • Minim a l use of re f lection a nd proxies • No runtime bytecode gener a tion • E a sy unit testing
  6. • B a cked by Or a cle • Two

    f l a vors - SE / MP • SE • Microfr a mework • Function a l, a synchronous style • MP • Supports MicroPro f ile • DI, JSON-P/B, JPA, JAX-RS… • Built-in Helidon Nim a web server (b a sed on virtu a l thre a ds). Previously b a sed on Netty. • Full MicroPro f ile support
  7. • B a cked by Red H a t •

    AOT wiring • Re a ctive core b a sed on Vert.x a nd Netty • MicroPro f ile support • „Kube-n a tive” • Live Coding • Dev UI • Dev Services • Continuous Testing
  8. • B a cked by JetBr a ins • Written

    in Kotlin • Coroutines for a sync oper a tions • Microfr a mework with plugin system (e.g. DI -> Koin)
  9. Screener Demo App • Checks whether a given person/ org

    a niz a tion is s a nctioned • T a kes a n a me vi a GET p a r a meter • Performs norm a liz a tion a nd tokeniz a tion • Piotr Ł a sk a wiec -> PIOTR LASKAWIEC • Performs fuzzy se a rch using Levenshtein a lgorithm to c a lcul a te dist a nce
  10. Response time [ms] ( f irst request) 0 350 700

    1050 1400 Spring Spring AOT Micron a ut Qu a rkus Ktor Helidon MP 880 512 660 671 980 1 217 JVM N a tive
  11. GitHub St a rs 0 20000 40000 60000 80000 Spring

    Boot Micron a ut Helidon Qu a rkus Ktor
  12. Popul a rity (bi a sed) 0 10 20 30

    40 Spring Qu a rkusMicron a ut Helidon Ktor
  13. Job O ff ers 0 17,5 35 52,5 70 Spring

    Qu a rkusMicron a ut Helidon Ktor