Emmanuel, Guillaume et Arnaud discutent des nouvelles de l’été. JEPs, transactional outbox pattern avec Spring, LLM dans Chrome, faille polyfill.io, TOTP, congés illimités et IDE payant ou pas payant ?
Enregistré le 12 juillet 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-314.mp3
News
Langages
Les fonctionnalités de JDK 23 ont été figées début Juin (release prévue en septembre) https://openjdk.org/projects/jdk/23/ https://www.youtube.com/watch?v=kzjGp7LmW0I
- JEPs finales:
- 467: Markdown Documentation Comments
- 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- 474: ZGC: Generational Mode by Default
- JEPs en incubation / preview
- 455: Primitive Types in Patterns, instanceof, and switch (Preview)
- 466: Class-File API (Second Preview)
- 469: Vector API (Eighth Incubator)
- 473: Stream Gatherers (Second Preview)
- 476: Module Import Declarations (Preview)
- 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- 480: Structured Concurrency (Third Preview)
- 481: Scoped Values (Third Preview)
- 482: Flexible Constructor Bodies (Second Preview)
Librairies
Le transactional outbox pattern avec Spring Boot https://www.wimdeblauwe.com/blog/2024/06/25/transactional-outbox-pattern-with-spring-boot/
- transactional outbox permet d’éviter des 2PC ou des désynchronisations de resources: typiquement un commit dans une base et un envoie de message dans un bus
- on ecrit le message dans une table de la base de données, et un process séparé récupère les messages et les envoient dans le bus
- implémentation utilise Spring Integration
- dans l’article, la seconde resource est l’envoie d’email
- montre une approche de tests
- le flow descrit pas psring integration est pas super trivial a lire quand on est pas familier mais cela poll la table toutes les secondes et envoie email et si succes de l’appel de service, vide le message de la table
- Deuxieme exemple avec Spring modulith qui a un event bus interne qui peut être persisté
- décrit les differences avec spring integration et les limites de l’approche modulith (message order, retry etc)
Comment tester des valeurs de propriétés différentes dans un test Quarkus https://quarkus.io/blog/overriding-configuration-from-test-code/
- on a tendance a ne pas tester les propriétés de config
- ce blog montre 5 (enfin 4 utiles) façons de le faire avec Quarkus.
- les profils de test, mocker l’objet de config, les test components (experimental), l’injection dans les constructeurs
Quarkus 3.12 https://quarkus.io/blog/quarkus-3-12-0-released/
- centralisation des configs TLS
- support pour le load shedding (reject requests on service overload)
- événements JFR specific a Quarkus
- native image agent
- support Spring Boot 3 (compat layer)
- Support Kotlin 2
- etc
Cloud
On vous parlait dans un épisode précédent de ce problème de coûts S3 sur des requêtes non autorisées. C’est Graphana Loki qui a mis ce problème sous les projecteurs https://grafana.com/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazo