Hi Redis forum,
I have tried to make sense of the Redis Source Available License Agreement, and to understand its intent in such a way that a reliant organisation (such as my employer!) could legally defend its use of IP licensed by the RSAL⌠and failed. I would be very grateful for any assistance that anyone could offer in clarifying its implications.
My attempt to parse section 1.1.b went something like this⌠If my organisation has developed âYour Applicationâ, then the âYouâ entity mentioned by the license is actually the end user of âYour Applicationâ. However, if my organisation is also providing any kind of âDatabase Productâ that is in any way used âin connectionâ with âYour Applicationâ, then it would appear that my organisation is itself the âany third partyâ (since it is neither âYouâ nor Redis Labs) that has caused the end user (âYouâ) to be in breach of the license. Confusingly, it appears that the end user has then breached the license, but my organisation has not (since it has not violated 1.1.a or 1.2). This makes it seem that I can offer such an Application to another party in such a situation, but that party is unable to use it. This is the point at which all Iâm sure of is that I have not understood the RSAL.
So, I have 5 general categories of questionsâŚ
- Easy one first: what do âas part ofâ and âfully embeddedâ mean? For exampleâŚ
- âThe Softwareâ is statically compiled into the binary that becomes âYour Applicationâ?
- âThe Softwareâ is dynamically linked to âYour Applicationâ when executed?
- âThe Softwareâ is installed, configured and executed separately from âYour Applicationâ, and âYour Applicationâ accesses it at runtime via a socket/IPC?
- All of the above?
- What do âin connection withâ and âthird partyâ actually mean in section 1.1.b? For example, does that section meanâŚ
- âThe Softwareâ may not use literal network connections to some other âDatabase Productâ (which is not âYour Applicationâ) that is offered by a third party (third party being an entity which is neither Redis Labs, nor âYouâ, nor the developer of âYour Applicationâ)?
- âYour Applicationâ may not use âThe Softwareâ if âYour Applicationâ (which is itself not a âDatabase Productâ) uses literal network connections to some other âDatabase Productâ that is offered by a third party (third party being an entity which is neither Redis Labs, nor âYouâ, nor the developer of âYour Applicationâ)?
- âYour Applicationâ may not be a âDatabase Productâ, and use âThe Softwareâ, if âYour Applicationâ is made available to âYouâ by a âthird partyâ (third party being somebody who DID NOT make âYour Applicationâ)?
- âYour Applicationâ may not be a âDatabase Productâ, and use âThe Softwareâ, if âYour Applicationâ is made available to âYouâ by a âthird partyâ (third party being somebody who DID make âYour Applicationâ)?
- Other?
-
What does the RSALâs definition of âDatabase Productâ mean in real-world terms? (In fact, this is the crux of the problem, since it would probably clarify the interpretation of 1.1.b.) The RSALâs first definition of a âDatabase Productâ is â(a) database;â. I would contend that it is never helpful to define any term by simply repeating the the same term again! This definition does not actually help define what a database is or is not. For example, if âYour Applicationâ provides some kind of domain-oriented repository functionality, but is not a general-purpose database (like MySQL), then is it still a database? Or does âdatabaseâ only mean a general-purpose database of the kind that typically has âDBâ in its trademark? In what circumstance is an application that stores data not a database? The RSALâs other definitions are similarly vague, and so broad as to potentially encompass any software⌠Eg if âYour Applicationâ has a search feature in it, is âYour Applicationâ a âsearch engineâ? If it caches data anywhere, is it a âcaching engineâ? If it processes data buffered in a queue or arriving over a network from a message bus, is it a âstream processing engineâ? When does any kind of domain-oriented application not actually fall into one of these very broad categories? Examples of real-world products that do or donât fit would be extremely helpful.
-
What are some examples of the kinds of Applications are permitted by the RSAL?
-
Am I overthinking this? Is the whole intent of the RSAL simply that developers are welcome to use âThe Softwareâ for any purpose as a backend component that their software talks to, but the license is intended to prevent AWS or Microsoft from repackaging âThe Softwareâ as a general-purpose cloud offering (something like DocumentDB being offered as a MongoDB alternative, or Blazegraph being repackaged as Neptune)?
(Please forgive me if this has already been covered elsewhere; I was unable to find anything relevant.)
Best regards,
Dan.