I love the AGPL, but even that has some holes. One classic case is a "backend service", which the user doesn't ever directly interact with, but is used by the application backend to provide the user service. Like if I modify an AGPL geocoding microservice, which is used by my backend to plan a trip to show the user, do I need to release the source? What if it's not displayed to the user at all and is just a small part of another calculation that is (like predicting bus arrival times)? What about an AGPL database or cache server? And if backend services don't count, are the users not interacting only with the reverse proxy and everything else is a backend service?