snapshot writing with external trigger