Sounds a lot like re-frame[1] (which I believe predates Redux), they even call the state "atoms." [1] https://github.com/Day8/re-frame
The term 'atom' is a clojure-ism, that's where both I and reframe get it from.
Re-frame wraps Reagent, and introduces the concept of "subscriptions". A subscription either returns the content of an atom, or state derived from it, equivalent to Recoil's selectors. Re-frame also introduces the concept of a global application DB, a single atom that contains various pieces of state, such that you can develop your entire app around it.
I haven't tried Recoil, but I'll give it a shot on my next JS project - I tend to use ClojureScript for front-end precisely because I find the Reagent/Reframe approach simpler and more effective than any of the plain JS React approaches (for complex apps, anyway).