I am new to federation via AP so apologies for any inaccuracies:
AP implementations currently cache foreign objects only temporarily and if there’s any interaction with a foreign object(commenting and liking liking foreign toots), I believe only a HTTP link to the object is stored in the DB.
This is different from how Matrix federation works. All participating servers retain a copy of messages on the chatroom. So even if the host server goes down, the room remains usable with all/most(Bob on server matrix.example.com joins chatroom after 100 days of chatroom creation and has only read/received message from then, then only those messages will be stored on matrix.example.com) history.
Full replication is justified in Matrix’s case, because a user joining a room will remain for prolonged periods of time but in case of forges, a user might simply want to read the contents of an issue. Full replication might inefficient there. How will you accommodate such uses where only a peek at data is required?