@hongminhee the simplest way to store ActivityPub objects is in a KV store because mainly you already have the keys: the object IRIs, and the value in the form of the raw JSON.
My advice: start with KV and plan for multiple storage options as a nice to have.
In my case the sqlite storage is used mainly as a KV store anyway, with generated columns for query convenience.