Kodexo : Boostrapper rapidement votre backend

Kodexo, basé sur Node.js et TypeScript, réinvente le développement backend avec une architecture REST, intégration Docker, et simplifie la création d'API.

Xavier HEN

Xavier HEN

13 novembre 2023

Kodexo : Boostrapper rapidement votre backend

Dans le paysage en constante évolution du développement backend, Kodexo émerge comme une solution nouvelle (ou presque 🤔). Basé sur Node.js et méticuleusement conçu avec TypeScript, ce framework transforme l'approche du développement backend classique se rapprochant de la mentalité de NestJS. Au cœur de Kodexo se trouve pas mal d'Orienté Objet avec l'utilisation assez poussée de Décorateurs mais aussi quelques principes de programmation fonctionnelle (qui a dit que c'était incompatible). Kodexo est uniquement axé sur le développement d'API REST, ne permettant pas (sur le papier) la distribution d'assets ou de views rendues côté serveur.

Kodexo : Boostrapper rapidement votre backend

L'approche de Kodexo

La création de Kodexo répond à un besoin crucial d'industrialisation pour Neodelta à la base. Alors que l'industrie est inondée d'architectures serverless et de microservices très à la mode, Kodexo se positionne comme la base d'un modular-monolith, basé sur une approche très "REST". Conçu pour la création rapide d'endpoints qui sont facilement testables, compréhensibles et interopérables, Kodexo défend effectivement une vision du "monolithe REST" comme fondement de projets modernes.

La mode du tout serverless (qui est très bien au demeurant) mais qui ne correspond pas à toutes les topologies de projets/clients, a ses limites. Je pense notamment à la dépendance à l'hébergeur (oui il existe le framework serverless etc. mais au global chacun fait sa sauce quand même). Je me demande aussi souvent pourquoi faire du serverless multinodes ou du splitting de services quand les clients ont quelques dizaines (ou centaines tout au plus) d'utilisateurs sur leur plateforme SaaS. Tous les projets ne sont pas des startups à plusieurs millions d'utilisateurs... et quand bien même il sera grand temps d'intégrer des solutions Event-Driven ou de splitter en plusieurs services avec une gateway efficace.

L'idée de Kodexo est de rester suffisamment robuste le temps qu'un projet scale. Il s
uffit simplement d'ajouter des conteneurs horizontalement et le tout est joué. Evidemment ce qui est dit précédemment reste pertinent et il faut faire évoluer la plateforme avec les besoins.

Architecture & facilité d'utilisation

Kodexo n'est pas seulement un framework back, c'est une philosophie de développement. En intégrant des fonctionnalités récurrentes à plusieurs projets, telles que les ACL, la possibilité d'upload/download sur plusieurs supports, la validation via DTO et la génération de documentation OpenAPI 3.1, Kodexo réduit la complexité de l'établissement d'une API stable, en un temps record. Il permet aux développeurs de se concentrer sur la logique métier plutôt que sur des tâches répétitives et fastidieuses. On essaie de réduire le boilerplate au minimum.

Une des fonctionnalités phares du framework reste son système de query déporté sur le front, ce qui permet via une API Rest de pouvoir restreindre les retours, d'avoir sa pagination déjà en place, de pouvoir populate les éléments enfants (avec restriction et droits selon ACL !), la problématique N+1 est gérée dès le début. Il y a plein de chose à découvrir sur Kodexo.

Kodexo et Docker

Une caractéristique clé de Kodexo est son intégration harmonieuse avec Docker. L'objectif est de simplifier le déploiement en encapsulant les API dans des conteneurs Docker, facilitant leur connexion à des sources de données et leur déploiement sur des plateformes compatibles avec Docker. Cette stratégie de déploiement souligne l'engagement de Kodexo envers des solutions de cloud computing efficaces et modernes. On peut rapidement deployer une API Kodexo sur n'importe quel hébergeur, en local, sur un K8s ou autre.

Vous me direz comme n'importe quelle app backend, je vous répondrai "oui" sur le papier. Mais dans les faits, le fichier de configuration, le fait que tout soit pensé pour être conteneurisé dès le début facilite grandement la compilation de l'image Docker.

Un Avenir Prometteur

Bien qu'encore en phase de développement, Kodexo a prouvé sa fiabilité dans des environnements de production. Sa nature adaptable et largement testée le positionne comme un choix de premier plan pour les développeurs qui cherchent à faire du rapide et bien (c'est presque possible).

Si certains se demandent pourquoi ne pas être parti simplement sur Nest, avec la documentation fournie, les formations et avoir des développeurs compétents directement : on a la maîtrise de ce qu'on fait, on se débarrasse de ce dont on a pas besoin sur Nest (beaucoup de modules supplémentaires pas forcément nécessaires pour nos topologies de projets), on est pas dépendant des mises à jour et du bon vouloir/parti pris de développeurs qui ne sont pas de chez nous.

Kodexo est plus qu'un simple outil pour nous, c'est le coeur de notre industrialisation chez Neodelta. En fournissant une plateforme qui accélère le développement tout en maintenant des normes élevées, Kodexo est idéalement positionné pour façonner les projets de nos clients en des temps records.

Plus de publications