24 Jul 2019

Google Summer of Code 19' Summary - Hydra Ecosystem

Hello reader, I’m Gustavo Morais and this post aims to summarize my journey throughout Google Summer of Code 19’. It has been three months of intensive learning and a remarkable experience as a developer which was divided into three coding phases. I’ll divide each phase citing its goal, small description and core PR links attached to each. I’ve made detailed blog posts about each phase 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.a1 hydrus. And also, we have a 2Python Agent to work with that server, a.k.a Hydra Agent. I and my GSoC colleague Vishal Desai had a series of improvements to make, in which Vishal was leading hydrus’ changes and I was responsible for the Agent side.

[Phase 1] - Smart Agent Foundations

The first period of GSoC was marked by intensive study and discussions. I was in charge of developing the Python Hydra Agent to take it from being an only-GET PoC Command Line tool to a Pre-Alpha release supporting all basic operations of the Hydra Agent. For that, I created a document in which I detailed and discussed with the mentors the architecture and then proceed to the coding and lastly documenting it. References for this phase are as below:


  • Implemented basic working Agent able to execute all CRUD operations through GET, PUT, POST and DELETE with URLs only.

Pull Request:

  1. [PR 109] Agent’s first implementation 46 commits

Detailed blog post : https://gustavomorais.me/y8wx

[Phase 2] - Agent All Set Up

The second phase of GSoC 19’ consisted of several different new features and enhancements developed separately to bring the Agent to its completeness. These included being able to use Hydra’s descriptive concept to search resources by types and properties while updating some core packages, fixing bugs and making our caching mechanism with Redis more stable and complete.


  • Implement hydrus and Redis searching by type/properties, bug fixes, and core packages updating.

Pull Requests:

Detailed blog post : https://gustavomorais.me/y8wa

[Phase 3] Power up and Graph it up

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 our Agent to be even more powerful and then build a GUI(Graphical User Interface) so users can easily try the Agent and try deployed hydrus servers with a generic interface that is built according to the API Hydra Documentation.


  • Build a GUI for the Agent, deliver a Synchronization Mechanism between Client and Server and wrap up bug fixes and documentation.

Pull Requests:

  1. [PR 123] Synchronization Mechanism
  2. [PR 125] Agent GUI 1/2
  3. [PR 128] Agent Documentation Update
  4. [PR 1] Agent GUI 2/2
  5. [PR 4] Agent GUI Documentation

Auxiliary Contributions

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


An introductory article on the Hydra Ecosystem: https://gustavomorais.me/hydra-agent-101


  1. [PR 387] Last remnants of hydraspec
  2. [PR 388] General config fixes on hydrus cli
  3. [PR 389] Setting up migrations with Alembic
  4. [PR 390] Avoid common installation errors
  5. [PR 400] Adding DELETE operation to drone collection

Python Agent

  1. [PR 106] Adding github template files
  2. [PR 108] Rebasing outdated develop to master


  1. [PR 37] Useful info, layout, fixes
  2. [PR 38] Deployment instructions, doc readability, warnings


The GSoC 19’ 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.

And of course, all of that would not be possible without the support, time and will of my mentors Akshay, Chris 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 Vishal Desai that helped me in most of my journey doing a meticulous work in hydrus and helping me with questions and concepts. He also has a great view of the world from which I’ve learned.


About the Author

Gustavo Morais - Software Developer
Google Summer of Code Participant - Hydra Ecosystem

Website: https://gustavomorais.me/
Linkedin: https://www.linkedin.com/in/gustavo-morais/
Github: https://github.com/guttz/

  1. Hydra Python Agent - https://github.com/HTTP-APIs/hydra-python-agent 

  2. Hydra CG - https://www.hydra-cg.com/