Malheureusement pour eux, l'interprétation de Neo Technology de l'AGPL est erronée.
Comme la GPL, l'AGPL ne se propage qu'aux versions modifiées du code source AGPL. Tant l'AGPL que la GPL exigent que vous accordiez une licence à tout ce qui est modifié à partir du code source AGPL (ou même à tout nouveau code qui y est lié). La différence entre ces deux licences est que la GPL vous oblige uniquement à distribuer le code source lorsque vous distribuez le produit, pas lorsque vous rendez le produit accessible via le réseau (tel qu'un site web). L'AGPL le fait. Elle cible spécifiquement des éléments tels que les logiciels frontend utilisés pour les sites web et généralement placés sur un serveur et accessibles directement par le monde extérieur (pensez aux "applications web").
Si j'ai bien compris, Neo4J peut être intégré dans l'application. Par exemple, si votre application est un site web et que vous utilisez Neo4J incorporé dans le code de votre site, les termes de l'AGPL exigeront que vous publiiez le code source de votre site web, car votre logiciel (le site web) est considéré comme une œuvre dérivée de Neo4J, car il est lié à du code sous licence AGPL.
Cependant, si vous utilisez Neo4J en tant que serveur autonome, il n'y a pas d'exigence de licence de votre code en tant qu'AGPL. La seule chose qui pourrait rendre votre code "contaminé" par l'AGPL serait si vous utilisiez une bibliothèque (pilote) pour interagir avec le serveur qui était sous licence AGPL. Ce n'est pas le cas, les pilotes que j'ai vus étaient uniquement sous licence GPL.
De plus, cela est aggravé par le fait que vous n'avez même pas besoin d'une telle bibliothèque et la communication avec Neo4J se fait par une API REST HTTP. Créer un logiciel qui interagit avec un autre logiciel via une API REST ne qualifie en aucun cas votre logiciel de modification ou de dérivation du logiciel original, selon toute mesure ou toute licence, y compris selon les définitions de code dérivé fournies par des licences telles que la GPL et l'AGPL.
L'utilisation de l'AGPL pour le logiciel backend est plutôt malhonnête et inutile, car elle ne fait pas beaucoup plus que la GPL dans la plupart des cas. Notez que même si l'API REST n'existait pas et que les pilotes pour interagir avec Neo4J étaient tous sous licence AGPL, on pourrait facilement utiliser Neo4J dans un contexte commercial en ayant le module qui interagit avec Neo4J comme un logiciel séparé du reste de vos applications, et en communiquant strictement avec lui via une interface telle qu'une API SOAP ou REST HTTP. Ce logiciel devrait être sous licence AGPL, mais vous n'auriez pas besoin d'en distribuer le code source tant que vous ne distribuez pas le code ou ne laissez personne interagir directement avec votre module AGPL via le réseau. Mais vous n'avez même pas besoin de faire une telle chose, puisque Neo4J le fait déjà pour vous en exposant une API REST.
Ils devraient vraiment rédiger eux-mêmes une licence open source adaptée à leurs objectifs, puisque l'AGPL ne leur offre pas la protection qu'ils pensent obtenir. Peut-être n'ont-ils pas engagé un avocat ou ont-ils engagé quelqu'un avec une mauvaise connaissance des termes de licence open source.