How to implement posts with “seen by” like facebook?
I think the main thing to consider here is how you store who have seen what.  The most convenient way is to store the post-user pairs.  Any solution with less granularity will have some cases hard to handle - your second suggestion, if I understood it correctly, would store a group-user pair, plus a flag that all posts are already seen (I imagine that this would be rather the last post ID at the moment of joining the group).  This would only work if you can't miss posts, so that the unseen ones form a contiguous group, all having a bigger ID than all already-seen ones.

Since the user-post pairing consists exactly these two fields, which can be, expecting extremely high user and post numbers, 2×8 bytes per row, I wouldn't expect performance problems with 10,000 users and 100,000 posts (provided there are really groups, I mean, not all users belong to all groups and be able to read all posts - in this case, the table would be approximately 30 GB in size (plus the same size for the index necessary for the primary key).  This size can only be handled by appropriate hardware and some magic, like archiving old posts as those are queried rarely and so on.  If your system exceeds that size, you probably make nice money of it, being able to beef your system up :)