Google Summer of Code 2020 Summary - Hydra Ecosystem

Hi there!

I’m Samesh Lakhotia and this post aims to summarize my journey throughout Google Summer of Code 2020. It has been three months of intensive learning and a remarkable experience as a developer which was divided into three coding phases. This has been one the most productive and enriching summers of my life.
I’ll divide each phase citing its goal, small description and core PR links attached to each. I’ve also made detailed blog posts during each phase(bi-weekly) and they’re linked in the end of each section. The last part has some diverse auxiliary merged contributions done along the way.

Our community has different tools including a working server that can be built from a Hydra Doc, a.k.a hydrus, a Python Agent to work with that server, a.k.a hydra-python-agent and the core library to handle all the major parsing of Hydra Docs, a.k.a hydra-python-core. I and my GSoC colleague Priyanshu Nayan had a series of improvements to make, in which Priyanshu was leading Hydra Agents’ and Core library changes and I was responsible for the hydrus side.

[Phase 1] - hydrus database architecture improvements

The first phase of GSoC was marked by intensive study and discussions. I was in charge of optimising the existing database architecture of hydrus. The basic idea was to go from a generic database schema to one where different type of resources are stored in different tables to improve scalability and efficiency. To start this task, I had to get really comfortable with the existing database architecture.

Then, I had detailed discussed with the mentors on the possible architecture and then proceeded to the coding and lastly documenting it. References for this phase are as below:


  • Research and implement better multiple-table architecture - database architecture where different type of resources are stored in different tables to improve scalability and efficiency

Pull Requests:

Detailed blog posts during this phase:

[Phase 2] - Treating collections as a Resource

The second phase of GSoC consisted of mainly two new features and enhancements. These were some old issues in hydrus which needed to get fixed from a long time.
These included the ability to treat collection as a resource (and therefore, create custom collection instances) and also removing the unnecessary dependency of using “*Collection” as default notation for naming Collection resources.


  • Improve hydrus by adding feature of treating Collection as a resource and remove the dependency of using “*Collection” as default notation for naming Collection resources

Pull Requests:

Detailed blog posts during this phase:

[Phase 3] - More features in hydrus!

As the last phase started, we had covered a considerable amount of the core goals we had and now was time to close things out with a some last additions. We wanted some more features in hydrus which included removing hardcoded dependencies on vocab keyword and adding support for multiple resource type collections.


  • Improve hydrus with main feature of multiple resource type collections and removing hardcoded dependency on vocab keyword and wrap up bug fixes and documentation.

Pull Requests:

Detailed blog posts during this phase:

Auxiliary Contributions

There were a some additional contributions made along the way and during the Community Bonding that will be mentioned for consistency but were mainly auxiliary:






The GSoC 2020 journey now comes to an end. I have to say it was personally a really important development phase for me and an experience that I’ll remember forever. I feel now that I’ve progressed as a Software Developer and also that we were able to progress and take Hydra Ecosystem development a little bit further with a group of people spread in the world.

I have also been added the HydraEcosystem organisation. I will use this opportunity to keep contributing to HydraEcosystem[and other open source projects too;)] even after my GSoC 2020 period. I have talked to with my mentors on the other interesting stuff they are working in the organisation and how I could possibly start working on them.

And of course, all of that would not be possible without the support, time and will of my amazing mentors Chris Andrew, Akshay Dahiya and Lorenzo. Whom have been, not only this summer but for years, cultivating the Hydra Ecosystem and giving their time and effort to develop this concept and provide the opportunity for other people to join and learn. My honest thanks for the knowledge and trust you’ve shared with me, it’s something that I’ll take with me in my career to become a better professional.
I also have to give a huge shout out to my GSoC partner Priyanshu Nayan who helped me a lot whenever I was stuck debugging something, having a doubt in the Hydra spec or any help in general.

To sum it up, I think this is a start to my journey in open source software rather than end to my GSoC period.

Get in touch

Thanks for stopping by, I hope you found something useful or interesting.
If you want to contact me, you can reach out to me via my below online profiles:

Email me at samesh.lakhotia+work@gmail.com