Comment mettre en place une architecture microservices avec Kafka Streams ? C'est la question à laquelle répond Said Bouras dans ce Matters Meetup, qui aborde les questions à se poser au moment de la conception, l'intégration avec les systèmes existants et les tests à mettre en place.
Said Bouras commence par exposer les actions à prendre avant de commencer les développements avec Kafka Streams. Comment dimensionner son cluster Kafka ? Quelle est la formule pour choisir le bon nombre de partitions pour un topic ? Said Bouras nous dit tout et nous montre comment effectuer des tests de performance pour vérifier sa configuration Kafka.
En nous donnant une définition simple des microservices, il nous présente ensuite comment mettre en place une solution qui en respecte la philosophie. Et surtout, avec de bonnes pratiques, comment maintenir une architecture cohérente avec les principes des microservices tout au long d'un projet.
La deuxième partie de ce Matters Meetup porte sur l'intégration à l'existant : les apps legacy et les bases de données traditionnelles. Les solutions Kafka Connect et Change Data Capture sont introduites, ainsi que les critères pour choisir entre les deux. Les méthodes join et aggregate pour lier des évènements Kafka Streams sont présentées, avec leurs avantages et leurs inconvénients.
Dans une dernière partie, Said Bouras présente les tests à mettre en place pour déployer sereinement une solution avec Kafka Streams. Il nous parle des tests unitaires et d'intégration bien-sûr, pour lesquels existent des librairies développées par Kafka et de Confluent.
Il termine avec les tests de système distribué. Aidé du framework Ducktape, il est possible dans ces tests d'instancier un cluster Kafka et des microservices similaires à ceux de production. Le but est de dérouler des scénarios pré-établis et de vérifier les performances pour ne pas passer à côté de bugs indétectables avec les autres tests.