Cars and Police, a Spring Boot streaming application using Kafka and ksqlDB

4 Likes

Legat de ksql si Kotlin m-am uitat recent la stream-ul de mai jos:

Pare o solutie foarte faina ksql cu serverless.

Inca nu stiu daca streams e o idee buna peste tot, e mult mai greu de facut debug si are un steep learning curve. Mai toti trebuie sa invete despre gRPC/Websockets (stomp/mqtt)/kafka…

Ce ma deranjeaza foarte mult la Kotlin e ca JVM-ul are un warmup time mare si ca trebuie sa faci overprovisioning, sa implementezi ceva sa iti faca warm-up artificial, respectiv trebuie sa fii atent sa faci un debounce la scaling cu kubernetes, altfel la inceput risti sa pornesti mult mai multe instante decat ai nevoie.

Imi este mai simpatic golang din acest motiv, dar Kotlin are un tooling de neegalat.

ksqldb nu e prea copt inca:

  • nu poti sa faci joinuri cu mai multe conditii;
  • nu poti sa faci self-join pe un stream;
  • nu suporta union la stream-uri (chiar daca sunt identice);
  • tooling nu exista (in afara de solutia cli);
  • driverul de Java (nu am gasit pentru alte limbaje) e cam primitiv. De exemplu daca faci un streamingQuery iti returneaza un Producer, toate bune, dar nu poti sa-l folosesti direct intr-un Flux<?> out of the box.
  • ca performanta nu e “stelar”. Pentru exemplul postat mai sus, CPU-ul statea foarte sus (pentru relativ putine evenimente). Initial am crezut ca e de la browser/canvas/websockets dar in realitate ksqlDB struggled.
1 Like