I have thought about this for Datahike as well. One problem that you have for Datomic and Datahike is that you do not want B+-tree fragments to blow up arbitrarily. If you can store arbitrarily sized blobs in them then some queries can take a much longer time to load results than others, even if they do not directly access these blobs. This easily can turn latencies unpredictable. You also have this problem with strings of course, but there you are usually more aware when you do it and I guess Datomic has a length restriction. For Datomic I also guess that DynamoDB has size restrictions. For DataScript this does not matter and I agree that it can be convenient to only partially lift content into the index and store the rest in blobs. So we will support this in Datahike, but probably expose the underlying constraints to the user.