CouchDB Weekly News, June 22, 2017


Releases in the CouchDB Universe

  • clusterpost-provider 2.2.4 – This is an Hapi plugin to Execute jobs in remote computing grids using a REST api.
  • couchdb-creator 1.0.0 – Utility for dynamically check for, and creating if their existence is doubtful, a specified DB in CouchDB via nano.
  • ember-cli-sofa 2.0.2 – Sofa is full featured and easy to use CouchDB model persistence library for Ember.js.
  • putdoc 1.0.2 – PUT a folder as JSON, in CouchDB “traditional couchapp” style, via simple Node.js tool.
  • spicy-action 10.0.1 – Web proxy for CouchDB and others, plus Socket.IO relay


Opinions and other News in the CouchDB 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! –
  • 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 or ping Andy Wenk (awenkhh on IRC).

We’d be happy to welcome you on board!


Job opportunities for people with CouchDB skills

Time to relax!

  • “But what exactly is stressing people out about their jobs? According to the study, about 16 percent report complicated work as being their number-one stressor, and another 15 percent name long hours. Other factors people commonly cite as the most stressful part of their jobs include a lack of control, a lack of resources, tough deadlines, and too much work.” – Here’s How Most People De-Stress After Work
  • “Employees are encouraged to bring their cats to work, and Fukuda says that he will even give 5,000 yen (just under R600) to those who want to adopt a rescue cat. When not chasing their toys, the cats can be seen wandering about and lolling on desks.” – De-stress with pets in the workplace
  • “Incorporating meditation into a chaotic day can be challenging. Who has time to sit down and clear the mind when you have a million other things to do? But here’s the kicker—even though it may seem like you have no time for it, meditation can actually help you feel more focused and productive.” – A 2-Minute Meditation to De-Stress and Feel Happier
  • “When you are triggered, the emotional part of your brain takes over. You are flooded with adrenaline and cortisol, the same neurotransmitters and hormones that have evolutionarily protected us from threats like bear attacks (freeze, fight, or flight). Your logical brain temporarily shuts down, and you lose the ability to solve problems, make decisions, and think rationally.” – Handle Your Stress Better by Knowing What Causes It

… and 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.

CouchDB Developer Profile: Paul Davis

Paul Davis, CouchDB developer Longtime fans of the CouchDB project will probably recall the name Paul Davis from the work of merging BigCouch into the Apache CouchDB project a few years back in 2013. They might also recall the epic pre-tweetstorm era tweets documenting his and Rob Newson’s progress, thoughtfully captured here for all to enjoy. Paul has been with the project for a very long time, and has served on the Project Management Committee (PMC) for over 5 years.

He recently shared some of his thoughts and experiences about working on CouchDB.

Do you want to talk about your background, or how you got involved in CouchDB?

I found Apache CouchDB while working as a bioinformatician at New England Biolabs. My favorite saying back then was that in biology the only rule without exception is that there’s an exception to every rule (Ribosomal slippage, I’m looking at you!). I learned SQL from a couple very smart DBA programmers during school so I had a pretty good handle on the relational model. But during my years in bioinformatics each time I designed a database schema it was a trade off between simplicity (and thus not comprehensively representing a dataset), or complexity (to the point that it was difficult and slow to use for the 90% of the data). Luckily somewhere around the summer of 2008 I stumbled across this new wave of database technologies that came to be known collectively as “NoSQL.” It was a bit of a zen moment when I realized that maybe not having a schema is the solution to my constant rage against the database moments.

I ended up finding CouchDB through Hacker News and decided that the community was a wonderful assortment of characters. While I applied a lot of ideas from NoSQL and CouchDB to bioinformatics I never did end up using it directly for my work. However I found the project and the community so fun to be a part of that I ended up continuing to contribute and was eventually elected as a committer. Over time I was seduced by the startup world and left bioinformatics to join Cloudant
in 2011 as employee 11, or so. Eventually Cloudant was acquired by IBM where I continue to work on CouchDB.

What areas of the project do you work on?

Over time I’ve made contributions to nearly every part of Apache CouchDB, but by far and away my largest contributions are all focused on the database core and all of its related nooks and crannies.

Could you talk more about what you’re currently working on in database core?

My big project right now is the pluggable storage engine API. The main work of this change was to go through and define an abstraction layer that was both high level enough that it allowed for new and interesting storage engines, yet low level enough that a storage engine didn’t have to reimplement a large swath of the database logic. Once the basic API was designed it turned mostly into a matter of moving
a decent amount of legacy code around to fit into the new API and then writing a reusable test suite for storage engine behaviors that can be reused by any storage engine.

As discussed, this work is currently being reviewed so I’m mostly responding to comments and fixing a few minor bugs that were discovered, as well as improving the internal documentation for others to experiment writing their own storage engines. I’ve already seen developers get an initial implementation of an ETS-based ephemeral storage engine, along with a RocksDB-based storage engine, so it’s been pretty neat to see people experimenting with it before it’s even been merged.

What’s a recent development/event/aspect of the project that you’re excited about?

There’s currently a pull request open for adding a pluggable storage engine API to CouchDB. So far the reviews are all positive, as developers have started reviewing and testing it. Once that lands I think there will be a lot of fun experimentation and new storage backends for new types of deployments. It’ll be quite a lot of fun to see what people come up with there.

What do you think are the top three benefits of using CouchDB as a database solution?

  1. No schema! The relational model is great for relational data, but not all structured data fits that model.
  2. Application data model consistency. Most people think of this as replication but one of the things that I’ve always liked about CouchDB is how an application can reuse the same data model regardless of programming language or deployment environment.
  3. Erlang is a wonderful language for operations. The ability to open up a shell on a node that’s misbehaving to diagnose bugs and misbehaviors is invaluable.

What do you look forward to in the future of CouchDB?

In the short term there are a few features that could prove to be pretty exciting (pluggable storage engines and clustered purge). However, the one thing that keeps still keeps me going is the community around the project. Meeting new people as they join and keeping up with old friends after they’ve moved on is still one of the best parts about working on CouchDB.

What advice do you have for someone who just discovered CouchDB?

Come say hello on IRC or Slack! Also, probably my most common piece of advice I have for people learning CouchDB is that if it seems complicated, you’re over thinking it. I can’t count the number of times I’ve seen someone have an “Aha!” moment and then say, “I can’t believe it’s that simple!”


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

Have a suggestion on what you’d like to hear about next on the CouchDB blog? Email us!