I'm using bcache, and I'm using btrfs as the filesystem on top of it. I'm not sure that the way I've done it is considered best practice anymore. The discourse online is a mess because the landscape keeps evolving.
https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt