J2EE
In this article I'll describe why you shouldn't overlook the potential usefulness of transactions within your application, even if you're not using distributed transactions.
Over the years I've seen many complaints about using transactions (e.g., via the JTA) for a number of reasons, including performance degredation, assumptions are impact on application development etc. You don't get something for nothing (there really is no such thing as a free lunch), so there's always a trade-off to be made with transactions: guaranteed completion even in the presence of failures. In this entry I'll look at why you shouldn't look to trade off some transaction properties; either use them all or don't use transactions.