OpenSearch is the result of an aggressive fork made by Amazon to prevent Elastic (company) from selling its products – namely to AWS and its customers. This is the first reason why I am against the switch to OpenSearch, but there are others.
First and foremost, we should remember that pretty much all arguments presented by Amazon/OpenSearch are propaganda arguments aimed at spreading FUD (fear, uncertainty and doubt). The OpenSearch vs Elasticsearch situation is a public relationship war, before anything. No, edX is not going to get sued by Elastic for using Elasticsearch in a paid product. Yes, we can still use Elasticsearch as we are used to – as long as we don’t sell Elasticsearch itself.
Here is an example of blatantly incorrect argument: Amazon claims that OpenSearch is a widely supported effort and that many companies contribute to its growth. Well, I’m not so convinced by this argument when I compare the number of commits pushed to either repos since the fork:
OpenSearch commits (source):
Elasticsearch commits (source):
Honestly, I’m worried that there are enough people outside of Elastic that are well versed in ElasticSearch to keep maintaining the project.
So, I think we should not make the switch to OpenSearch. It’s not the right moral choice, and not it’s also not the right technical choice.
I’ll make a bold proposal: we should take this opportunity to get rid of Elasticsearch entirely. Because as much as I despise Amazon’s tactics in this PR war, I think that Elasticsearch is the big wart in the architecture of Open edX. On an empty platform, in idle mode, Elasticsearch uses 1.5 Gb memory, which is 50% more than its heap size (and we can’t bring it lower than 650 Mb even when decreasing the heap size). This is the biggest memory hog from the Open edX stack. On the other hand, there are few components (edx-search, forums, discovery) that actually need Elasticsearch, which makes it easy to refactor them and abstract away their implementation. And search can be performed by other technical components of the stack, including components which are already present in the stack, such as MySQL. Getting rid of Elasticsearch will make it easier and cheaper (not to mention: greener) for everyone, small or large platforms, to run Open edX.