19e8cba59f
- PUT/DELETE like|bookmark:复合主键即幂等键(ON CONFLICT DO NOTHING /
条件 DELETE),计数列按关系写实际变更行数同事务增减,响应回
{liked,likeCount}/{bookmarked,bookmarkCount} 权威终态;并发重复施加
恰计 1、PUT+DELETE 竞态终态列值与关系表恒一致(真并发测试锚定)
- 互动门禁定型:只认帖子公开面(published 且未删)——作者本人草稿、
hidden/archived、软删、不存在合并逐字节一致 404/40403
- GET /api/v1/me/bookmarks:按 (bookmarks.created_at DESC, post_id DESC)
keyset 游标,卡片复用 FeedCard 装配;失效帖在页查询内静默剔除,
游标键在关系行上、分页正确性不受剔除影响
- PUT/DELETE /api/v1/users/{userId}/follow + GET follow-stats:
自关注 422/42204(ck_user_follows_self 库层兜底);目标不存在/注销
合并 404/40406,存在性走同库只读 identity.users(ADR-017 例外,
写门禁不适用 Feign 降级语义);计数实时 COUNT 双向索引
- ErrorCode 新增 40406 TARGET_USER_NOT_FOUND、42204 FOLLOW_RULE_VIOLATION
- 集成测试 14 例(LikeBookmark 9 + Follow 5):六类路径、并发幂等专项、
计数对账专项、收藏列表静默剔除与分页
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>