Port transactional storage access to Crawlee for Python: a request handler's storage writes should be buffered and committed atomically, so a handler that fails or gets retried leaves no partial writes behind. It should be enabled by default in every crawler and implemented at the storage level, so direct Dataset / KeyValueStore / RequestQueue calls are covered too, not just the crawling context helpers - which also absorbs the adaptive crawler's bespoke buffering.
Follow the JS implementation:
✍️ Drafted by Claude Code
Port transactional storage access to Crawlee for Python: a request handler's storage writes should be buffered and committed atomically, so a handler that fails or gets retried leaves no partial writes behind. It should be enabled by default in every crawler and implemented at the storage level, so direct
Dataset/KeyValueStore/RequestQueuecalls are covered too, not just the crawling context helpers - which also absorbs the adaptive crawler's bespoke buffering.Follow the JS implementation:
✍️ Drafted by Claude Code