Building climate change strategies with Geodesign Hub and CouchDB

We were excited to connect with Dr. Hrishikesh Ballal, the Managing Director at Geodesign Hub this past week.

Geodesign Hub provides advanced collaborative design technologies to enable their customers to build climate change and resilience strategies, plan for infrastructure investments, and develop cultural, tourism, and environmental management strategies.

Hrishi spoke with us about how he first discovered CouchDB and what his experience has been like employing it in applications.

How did you hear about CouchDB, and why did you choose to use it?

I heard about CouchDB when I was doing research about NoSQL databases, I was looking for a solution where I could use a different data storage technology that complements the primary PostgreSQL database.

The ability to handle many requests and the sync engine are the two main reasons we chose CouchDB. It it important for us to be able to replicate data and also maintain a good throughput on the server, so CouchDB was a obvious choice. Additionally, CouchDB is excellent at being stable and responding to many requests. CouchDB also has, in my opinion, the best in-class sync protocol and with PouchDB, you can jump in the JavaScript toolset and browsers as well.

Did you have a specific problem that CouchDB solved?

In our case, the main problem was that all connected clients requested different versions of data at the same time, thereby flooding our server with requests. It also meant that our database got clogged responding and fetching.

In addition, we had code that parsed each request to check the version to route it to a different database. Caching and other techniques solved this problem partially but it all seemed like a hack and we always had to tweak the settings. So CouchDB solves this problem very elegantly: to be stable under large loads, automatically version the data and transmit it reliably.

For the folks who are unsure of how they could use CouchDB–because there are a lot of databases out there—could you explain the use case?

First off, the use case for CouchDB is around data management and syncing over a distributed network. If you have data that needs to move over a network (public or private), I would really recommend looking at CouchDB.

Secondly, CouchDB very elegantly handles changes and versioning inside the database, and while one can do it using software (we did it originally), inbuilt versioning is very nice if you have data that changes. So far, we have been able to handle all sorts of requests with no major changes to hardware or need for beefy servers.

Finally, the CouchDB toolset allows transmission and propagation of these seamlessly so I recommend taking a look at PouchDB, they have excellent documentation and a great community.

What would you say is the top benefit of using CouchDB?

I would list:
– Sync
– Stability
– Versioning

Also, HTTP API, the Python library, and PouchDB, among others.

What tools are you using in addition for your infrastructure? Have you discovered anything that pairs well with CouchDB?

I have put CouchDB behind Nginx and it works quite nicely as a proxy and you can use all the web server features with CouchDB. I have heard that a CDN can be built using tools like Cloudflare, and it is something we are looking at. Of course, Cloudant works nicely as well, we use it as a secondary data source. The folks at Cloudant are really great and just for the support they provide, I would highly recommend them. I have been with them for a number of years.

What are your future plans with your project? Any cool plans or developments you want to promote?

We are a platform for collaborative urban planning and design and I am passionate about geodesign, so I am always happy to talk to people who are interested in urban issues.

Geodesign provides really important toolset in the context of urban management and changes in climate. The best place to know more is to join our community and introduce yourself. On the technical side, you can take a look at our API here and here, or find your way to our GitHub page to contribute.

 

Use cases are a great avenue for sharing useful technical information. Please consider joining the fun! Additionally, if there’s something you’d like to see covered on the CouchDB blog, we would love to accommodate. Email us!

For more about CouchDB visit couchdb.org or follow us on Twitter at @couchdb.

CouchDB Weekly News, September 7, 2017

Releases in the CouchDB Universe

PouchDB

  • cycle-pouchdb-driver 0.0.1 – A Cycle.js Driver for using PouchDB database
  • ember-pouch 4.3.0 – Ember Pouch is a PouchDB/CouchDB adapter for Ember Data 2.0+.
  • relational-pouch 2.0.0 – Relational Pouch is a plugin for PouchDB that allows you to interact with PouchDB/CouchDB like a relational data store, with types and relations.

Opinions and other News in the CouchDB Universe

… and in the PouchDB Universe

CouchDB Use Cases, Questions and Answers

Stack Overflow:

no public answer yet:

PouchDB Use Cases, Questions and Answers

Stack Overflow:

no public answer yet:

For more new questions and answers about CouchDB, see these search results and about PouchDB, see these.

Get involved!

If you want to get into working on CouchDB:

  • We have an infinite number of open contributor positions on CouchDB. Submit a pull request and join the project!
  • Do you want to help us with the work on the new CouchDB website? Get in touch on our new website mailing list and join the website team! – www@couchdb.apache.org
  • The CouchDB advocate marketing programme is just getting started. Join us in CouchDB’s Advocate Hub!
  • CouchDB has a new wiki. Help us move content from the old to the new one!
  • Can you help with Web Design, Development or UX for our Admin Console? No Erlang skills required! – Get in touch with us.
  • Do you want to help moving the CouchDB docs translation forward? We’d love to have you in our L10n team! See our current status and languages we’d like to provide CouchDB docs in on this page. If you’d like to help, don’t hesitate to contact the L10n mailing list on l10n@couchdb.apache.org or ping Andy Wenk (awenkhh on IRC).

We’d be happy to welcome you on board!

Events

Job opportunities for people with CouchDB skills

Also in the news

Submit news to the CouchDB Weekly

Reach out to us with your news suggestions by sending us an email or by contacting us on Twitter @CouchDB.