3.0 – Feed with Fan-Out, Event Filters, and Privacy Support
Destaques
- Implementação do sistema de feed baseado em fan-out — eventos de usuários seguidos são distribuídos em tempo real para os seguidores do actor
- Suporte a múltiplos tipos de evento: criação de notas, chamas, comentários e novos follows
- Respeito à política de privacidade de perfil — usuários privados só geram eventos para mútuos
- Filtro de eventos por tipo via query param
events, suportando múltiplos valores - Limpeza automática de eventos via
ON DELETE CASCADEe handlers dedicados para unfollow, nota oculta e alteração de privacidade
Alterações principais
- Novo endpoint
GET /api/v1/feedcom paginação, ordenação porcreatedAt DESCe filtro por tipo de evento - Fan-out assíncrono com
@Async+@Transactionalpara inserção de eventos, recebendo IDs para evitar entidades detached - Limpeza de eventos delegada ao banco via
ON DELETE CASCADEpara deleção de notas, chamas e comentários - Handlers de limpeza para unfollow, nota oculta e alteração de privacidade de perfil
FeedSpeccomJpaSpecificationExecutorpara filtros dinâmicos opcionaisFeedEventParamConverterpara aceitar valoresUser_Followed,Note_Created,Note_FlamedeNote_Commentedcomo query params- Migration
V20260529__create_table_feed.sqlcom índice composto(recipient_id, created_at DESC) DetailCommentRESatualizado para incluir o camponote- Remoção do endpoint legado
GET /api/v1/notes/private/followinge métodos associados
Breaking Changes
- Endpoint
GET /api/v1/notes/private/followingremovido — substituído porGET /api/v1/feed DetailCommentRESpassou a incluir o camponote, o que pode impactar consumers que dependiam da estrutura anterior
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v3.0