# Ensuring transaction-safety in Google App Engine

DevFeed: [Ensuring transaction-safety in Google App Engine](<https://devfeed.tech/articles/ensuring-transaction-safety-in-google-app-engine-27414.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/transaction-safety.htm>)

Author: Khan Academy

Published: 2016-06-27T22:00:00Z

Content type: article

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Transactions](<https://devfeed.tech/topics/transactions.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Code](<https://devfeed.tech/topics/code.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [code](<https://devfeed.tech/tags/code.md>), [database](<https://devfeed.tech/tags/database.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [google](<https://devfeed.tech/tags/google.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [news](<https://devfeed.tech/tags/news.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

## AI overview

The article explains how Khan Academy uses transactions and user-write locks with Google App Engine to prevent database corruption caused by concurrent requests overwriting one another. It describes hooks that detect transaction-safety violations and highlights caching and code-path mistakes that can cause stale data to be used inside transactions.

## Source excerpt

By Craig Silverstein In last week's exciting post, I described an alternative to transactions that we use at ... Read more