14

So if I had a microservice architecture and one of my services relied on a piece of AGPL software, and that service wasn't customer facing, but a service that communicated with it was, would I be required to open source all of those services? or any of them? How does this license impact this architecture?

3
  • Related: programmers.stackexchange.com/a/314908/198703
    – gavv
    Apr 27, 2016 at 21:28
  • 1
    @gavv: Why cite a specific answer (not even the top answer) instead of the question itself? Because you support that specific interpretation? Be careful that this is a very controversial interpretation (just have a look at the comments it got).
    – Zimm i48
    Sep 14, 2016 at 14:09
  • @Zimmi48, you're right. I like that specific answer, but a link to the question would be more appropriate.
    – gavv
    Sep 15, 2016 at 12:43

1 Answer 1

9

If the the services together form a derivative work under copyright, then the AGPL source-sharing provisions apply to the entire work, and you must share the source code for the entire work. If they do not form a new work (i.e., they are considered independent program-works that merely happen to interact with one another), then the source-sharing provisions apply at most to the AGPL work only, and only if you have modified it in a way that qualifies as a derivative work under copyright. Note that the determination of when two programs interact with sufficient closeness to form a new single program-work is a subjective determination.

If the AGPL service is indeed a separate work from the rest of your code, then if both

  1. the user interacts with the service in a way that satisfies the AGPL's standard of "interacting with it remotely through a computer network," and
  2. you have modified the service in a way that produces a derivative work under copyright law

then you must make the source code available to your users.

I am not aware of any case law about what level of network interaction is necessary, but if the AGPL service is a utility used by another service that the user actually interacts with (e.g., an AGPL database used by a Web service that the user actually sends packets to) then it probably does not satisfy that condition. (However, note that in my parenthetical example, the database/Web service combo could be a modified work of the AGPL work and the AGPL may apply to both, in which case source-sharing would be necessary for the whole thing, as mentioned in the first paragraph.)

5
  • IMHO you are mis-representing the AGPL. If the code is used as-is and unmodified, the AGPL is not much different from the GPL. May 7, 2016 at 19:11
  • @Philippe I tried to make that clear with the requirement that "you have modified the service in a way that produces a derivative work" is necessary to trigger AGPL provisions. How can I make it more clear?
    – apsillers
    May 7, 2016 at 19:39
  • Very clear! The more I read the AGPL, the more I better understand the licensing approach of MongoDB for instance. May 7, 2016 at 20:48
  • 3
    @apsillers Let's say I create a microservice for PDF Conversion using the AGPL version of iText7. Then I build a copyrighted web application that calls that microservice. #1: Should I disclose only the microservice source-code, or also the web application source code? #2: should I disclose the source code with the customers only, or with the whole world (on GitHub for example)? Thanks in advance Dec 10, 2018 at 9:17
  • 3
    @AndreaLigios The central question for #1 may be a difficult legal determination: does your use of an AGPL microservice create a derivative work? I would personally lean toward "no, it does not" but as I detailed in my answer, I don't know of any real case law on the subject. By contrast, #2 is very easy to answer: whenever you have AGPL obligations, you have them only toward people who actually use (or receive) your software -- you have no obligations toward people who have never interacted with your software. (Same for GPL: you have obligations only insofar as you distribute the software.)
    – apsillers
    Dec 10, 2018 at 13:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.