in reply to How to deal with data race issues with Perl?

Sounds like an HTML5 app on the client side? You can use SQLite in the client for offline and also on the backend for your main app if so.

Something I have done for edit collisions is to send a digest of the record with the form. It becomes a "known last edit token."

In DBIx::Class/Catalyst, e.g., something like-

# Token is sent with form. my $token = md5_hex(join("",sort $row->get_columns)); if ( $token eq $c->request->body_params->{token} ) { # Record hasn't been updated by anyone since the form was loaded. # Continue with edit/update... } else { # Warn about edit collision, pretty format diffs/choices # with Algorithm::Diff/Algorithm::Diff::Apply. }

As far as modperl, your deployment options will be limited. Unless you have an actual need of deep hooks in the request cycle + apache, there are "better" options today; nginx or lighttpd with Starman for example. I'd encourage you, strongly, to checkout Plack and the various web app frameworks like Catalyst, Dancer, and several other new ones.

Update: fixed syntax error in dummy code.