GraphQLの世界、元々BFFみたいな複数システムをAPI経由で束ねて提供するみたいな側面が強いのか、RDBMSから直接クエリするときのトランザクションのサポートが弱い。生成されるResolverが独立していて個別に呼び出されるようなinterfaceをしているのでユーザが明示的にtxを開始・commit/rollbackするところがない。
仕方ないのでextensionを書いてハンドラの呼び出し前にtx開始してcontextにinjectするようにしたけど、するとハンドラごとにreadonlyにしたりisolation levelを変えたりできない。うーん……
10 days ago