CouchDB Developer Profile: Nick Vatamaniuc

Nick Vatamaniuc is a Virginia-based software engineer at Cloudant and an Apache CouchDB committer. If his name sounds familiar, you might remember the post he wrote for our series “The Road to CouchDB 2.0” last year on the newly updated Replication feature.

Almost a year later, Nick shares some of his insights on CouchDB, Erlang, the latest updates to replication in 2.0, and where CouchDB is headed in the future.

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

I discovered CouchDB around 2010 while looking for a replacement for an existing database. CouchDB had won over all the other alternatives because of its durability, master-to-master replication, and a built-in easy to use web interface to query and inspect data.

But technical merits are only half the equation. I was also impressed with the Apache CouchDB community. They were very welcoming, friendly, and knowledgeable. Always willing to listen and help.

For the next 5+ years I was a CouchDB user and designed it at the core of a few products. During that time it ended up on thousands of servers across the planet, some in harsh and isolated environments. There wasn’t a single instance where CouchDB lost a customer’s data.

Another thing that made CouchDB stand out was that it was written in Erlang. For me it was a new language, so I looked it up and liked what I found. It made it easy to build distributed and fault tolerant systems. So I started to learn it in my spare time.

In 2015 I started working at IBM Cloudant, and last year got elected as an Apache CouchDB committer. Currently, I enjoy contributing to the Apache CouchDB project and being part of the CouchDB community.

What areas of the project do you work on?

I work mainly on what CouchDB developers call “DB Core”. It includes things like data storage, clustering, replication and HTTP layer.

Recently I was involved in improving the replicator. We had just merged to master an updated replicator which can handle a much larger number replication jobs and has a simplified replication task monitoring API.

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

Refactoring the project to use less source repositories. Previously most of the core applications were in separate source repositories. Now they are in a single repository and so it is easier to contribute, track changes and build the project from source.

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

Master-to-master Replication: Few databases support this feature. It allows creating custom clustering topologies (a ring, star, or a tree for example) with various availability and scalability trade-offs.

Durability and Fault Tolerance: CouchDB is resilient in the face of crashes and power failures. Data is always appended to the end of database files and never directly re-written. This is a simple and robust design. Also because it is written in Erlang, with its famous fault tolerance capabilities, if some parts of the database crash they automatically restart while the rest of the database core stays up and serves client requests.

Built-In Web Interface: Being able to open Fauxton and inspect, query and modify data is a very powerful and useful feature. I can speed up product development, for example by letting a front end developer populate the database by hand with some “mock” data with a few mouse clicks so they can refine their design. It can also help in production when something is not working quite right and there is a need to see the state in the database. For newcomers it makes it easy to learn and experiment.

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

One of the most interesting new developments I think is the Pluggable Storage Engines work done by Paul Davis. It would allow creating custom data storage backends with various trade-offs and characteristics.

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

Open Fauxton and experiment! Add some data, and then write some code to modify the data. Have some fun.

Find us on Slack or IRC. Ask questions.

Learn about _bulk_docs API endpoint to insert multiple documents at the same time. That is often a good way to improve insert performance.

Learn about change feeds and use them to create more responsive and dynamic applications.

 

For more about CouchDB visit couchdb.org 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!

CouchDB Weekly News, June 29, 2017

Releases

Releases in the CouchDB Universe

  • coucharchive 1.1.0 (Python) – Dump/restore a whole CouchDB server contents to/from a single tar.gz file.
  • couchit 0.7.0 – Couchit is a database iterator with tools to validate and manage documents in a CouchDB database.
  • davenport 2.6.0 – Davenport is a CouchDB client for simplifying common tasks like get, list, create, update and delete. It comes complete with full TypeScript definitions.
  • logstash-input-couchdb_changes 3.1.2 (Ruby) – This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname.
  • rest-on-couch 5.1.0 – Interface to CouchDB that allows the control of permissions on the documents.
  • spicy-action 11.0.2 – Web proxy for CouchDB and others, plus Socket.IO relay

PouchDB

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

Use Case:

  • Common PouchDB based runtime container code for Hyperledger Composer, a framework for building Blockchain business networks.

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

Time to relax!

  • “Charles Bukowski wisely once said, ‘Sundays kill more men than bombs.’” – The Science Behind the ‘Sunday Scaries’
  • “You can ‘run on empty’ for years before it hits you, but neglecting taking time for rest and relaxation can ultimately run you down and has the potential to burn you out. Just the same it can be hard to take the time for downtime. The key is to find small ways to bring it into your day-to-day routine. Once you do it’ll be a habit like any other self care routine.” – Rest And Relaxation Should Happen Every Day In Your Life. Here’s How.
  • “I’ve been meditating for over a decade, so I thought I was decently well versed in what the practice could do for me: twenty minutes of deep breathing calmed me down and helped me concentrate. I didn’t think there was much more to learn on an extended retreat. I was wrong.” – The Powerful Lifehack I Learned After 7 Days Of Silent Meditation
  • “In college, my therapist recommended I try meditation to curb my anxiety. At first, I was happy to oblige. I tried a variety of styles, from Zen meditation, which has you focus on breathing, to primordial sound mediation, which involves, well, making primordial sounds. It didn’t work.” – 6 Relaxation Hacks For People Who Hate Meditating
  • “Almost all types of meditation wake me up, making me feel more alert and attentive. And so for years I’ve searched for a meditation that specifically helps you fall asleep.” – Meditation for Insomnia and To Help You Fall Asleep

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