[erlang-questions] Using CouchDB to hold state for FSM - pros and cons?

David Mitchell <>
Mon May 2 08:56:28 CEST 2011

Hi all,

I've got to build an enormous finite state machine (FSM) to hold state for
tens of thousands of in-flight transactions.  The various state transitions
aren't well known yet; all I know is there's going to be lots of state
transactions per transaction, transaction volume will be extremely high, and
I'll probably have a bare minimum of time to throw together a working
solution ;->

In the past I've used mnesia to hold transaction state for similar projects,
but I've read a few articles about problems with it scaling and have a bit
of a concern on that count for this particular project.  I've been using
CouchDB for a few unrelated projects recently, and have been impressed with
it on every score - on the surface it seems to be a good fit for my specific
problem.  However I haven't stumbled on anybody using CouchDB as a high
throughput, transitional data store - everything I've read about it has
involved CouchDB working more or less as a NoSQL version of a "traditional"
write-once, read-often data store.

My application is far more "write-once, update-many-times-very-quickly,
delete" from a data perspective.

Has anyone used CouchDB as a FSM data store in a similar project in the
past?  Pros and cons?  Any tips or suggestions?

Thanks in advance

David Mitchell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110502/bdcef42b/attachment.html>

More information about the erlang-questions mailing list