separate 'append' and 'update' events, fix backend route for parity