Just to update anyone curious here, I ended up using memcached to do this. To get around not being able to docker-compose/have a seperate container for memcached, I changed the entrypoint
file that dockerfile uses, to firstly spin up memcached, and then execute the regular airbyte process. Then in the process I split state into intra (standard state persisting between syncs but not between streams) and inter (cached state persisting within the same sync between streams, but not between syncs).
Everything’s working fine with this approach; however, if airbyte ever moves to a world of parallelism within syncs (vs just between jobs as exists now), then this solution wouldn’t work (unless there was some way to mark syncs as “dependent” so some run in serial).