PostgreSQL comme Message Broker - Une Alternative Légère
Introduction
Quand on cherche un broker de messages, on pense immédiatement à des solutions comme RabbitMQ, Kafka ou ActiveMQ, mais rarement à PostgreSQL. Et pourtant, dans certaines situations, PostgreSQL peut être un excellent choix comme système de messagerie léger grâce à son mécanisme intégré LISTEN/NOTIFY.
Cette fonctionnalité native, souvent méconnue, permet d’implémenter un système de publication/abonnement (pub/sub) directement dans votre base de données, sans nécessiter d’infrastructure supplémentaire.
Comment fonctionne PostgreSQL comme Message Broker ?
Le mécanisme est remarquablement simple et repose sur deux commandes SQL principales :
Bruno - Un Client API Open Source Élégant
Qu’est-ce que Bruno ?
Bruno est un client API open source élégant et moderne qui se présente comme une alternative sérieuse à Postman et Insomnia. Je l’ai découvert alors que je cherchais un outil pour tester mes API qui soit à la fois simple d’utilisation et parfaitement intégrable avec Git.
Pourquoi choisir Bruno ?
Ce qui distingue Bruno des autres clients API, c’est sa philosophie centrée sur les fichiers locaux et le contrôle de version. Contrairement à d’autres outils qui stockent vos collections dans le cloud ou dans des bases de données locales, Bruno sauvegarde tout dans des fichiers texte que vous pouvez facilement versionner avec Git.
Revealjs avec Obsidian
RevealJs Quésaco
Avant de rentrer dans le vif du sujet, laissez-moi vous parler de Revealjs
Il s’agit d’un petit outil fait en javascript qui permet de faire de super présentation à partir d’HTML ou même de Markdown.
Pour démarrer un projet revealjs, il faut :
- Télécharger le zip https://github.com/hakimel/reveal.js/archive/master.zip
- Le dézipper et replacer l’index.html par le vôtre
- Ouvrir l’index.html dans votre navigateur et voir le résultat
Et Obsidian la dedans
Obsidian, c’est mon outil de note favori, surtout, car il permet de rajouter un très grand nombre de plugins développé par la communauté.
Dive
Dive est petit CLI écrit en Go qui permet juste en lui donnant une image, de voir toutes les couches qui ont été écrites ainsi que les modifications faites sur le système comme vous pouvez le voir sur le screen suivant.
Je le trouve vraiment bien, car il va vous permettre d’analyser votre image étape par étape ce qui peut être pratique pour debugguer ou pour essayer d’optimiser la taille de votre image.
String Interning
Qu’est ce que le String Interning
Il s’agit d’une optimisation pour les chaines de caractère qui permet de ne garder en mémoire qu’une seule instance de chaque chaine au lieu d’avoir une instance par chaine. Cela signifie donc que si une chaine identique est créée à plusieurs endroits dans le programme, alors elles pointeront vers la même référence mémoire.
Exemple :
String toto = "toto";
String tata = "toto";
System.out.println(toto == tata); //true
Comment ça fonctionne?
La plupart du temps, vous n’avez pas à vous en occuper. C’est une technique très puissante, mais si elle est mal utilisée, cela peut être contre-productif, car plus vous aurez de chaîne internée, moins, ça sera efficace.