Transactions are trivial when supported by your database engine.

Like [levelup's .batch()][1]

var ops = [
    { type: 'del', key: 'father' }
  , { type: 'put', key: 'name', value: 'Yuri Irsenovich Kim' }
  , { type: 'put', key: 'dob', value: '16 February 1941' }
  , { type: 'put', key: 'spouse', value: 'Kim Young-sook' }
  , { type: 'put', key: 'occupation', value: 'Clown' }
]

db.batch(ops, function (err) {
  if (err) return console.log('Ooops!', err)
  console.log('Great success dear leader!')
})

If your database driver doesn't give you a sensible clean api then just
write one.

If your database doesn't support transactions then your screwed.

  [1]: https://github.com/rvagg/node-levelup#batch


On Wed, Dec 19, 2012 at 7:01 PM, Charlie Circle <[email protected]> wrote:

> For serious web applications, transaction is crucial.
>
> But node's asynchronous nature do not obey transaction rule,  I wonder why
> there is no one care about it.
>
> In synchronous applications, you start your transaction, and do database
> operation step by step, when done, just commit it.
>
> While in node, you must start transaction a place, and commit it in a
> callback chain in a  deep level.
>
> But it's not the worst thing, because node  share a single connection in a
> process,  we can not sure which  operation is in what transaction, so all
> messed must.
>
> I've seen a solution in npm, which let you execute database operation in
> sequence, let us go back to synchronous age, not so scalable, right?
>
> Is there any new idea?
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to