Making sense of the Redis Source Available License Agreement

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. :slight_smile:

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…

  1. 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?
  1. 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?
  1. 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.

  2. What are some examples of the kinds of Applications are permitted by the RSAL?

  3. 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.

Hi Dan,

Thanks so much for the detailed question. I’m going to have to refer you to the Redis Labs legal department on this one. Feel free to send the same note to legal@redislabs.com, and they should be able to advise.

Thanks,
Kyle