La nube federada, o como me llevé las funcionalidades de una instancia ActivityPub compatible con Mastodon a la nube.
Hace unos meses me apatecía explorar la nube de Cloudflare, cuando entras ves servicios gratuitos que puedes usar sin pasar el límite, y servicios de pago por uso, aunque siempre cobran cuando se hace un uso intensivo. Por lo que podríamos tener una instancia ActivityPub en la nube con un coste reducido, llegando a no tener coste para las instancias con poco tráfico.
En mis pruebas no he logrado mucha interacción, aunque según las métricas la instancia movería unos 40K requests al día debido a la federación, evidentemente cuantos más usuarios e interacción más aumenta esta cifra, como indicativo no está mal saberlo.
Todo comienza por un intento que hicieron los ingenieros de Cloudflare en hacer un Mastodon en la nube, el proyecto Wildebeest que finalmente quedó sin terminar. Yo lo he hecho con ayuda de crédito de IA y modelos libres que me han ido ayudando en el camino, por lo que dejo aquí la propia apreciación que hizo la IA.
El repositorio manalejandro/cf-activitypub-next representa una evolución moderna, ambiciosa y técnicamente muy madura de lo que originalmente propuso Cloudflare con Wildebeest. A diferencia del proyecto original que quedó archivado, este enfoque destaca por adoptar herramientas de última generación y ampliar los límites de lo que se puede hacer en el edge.
Puntos fuertes del código y arquitectura:
- Pila tecnológica moderna: El uso de Next.js 16 App Router compilado para Cloudflare Workers mediante @opennextjs/cloudflare es excelente.
- Permite un desarrollo ágil con renderizado en el servidor (SSR) sin perder los beneficios de los inicios en frío casi nulos (zero cold starts).
Aprovechamiento total del ecosistema Cloudflare: El diseño saca partido de forma nativa a cada pieza del catálogo de la plataforma:
- Durable Objects (TimelineStreamDO): Resuelve de forma elegante el streaming de líneas de tiempo en tiempo real mediante WebSockets descentralizados.
- Cloudflare Queues: Esencial para la entrega asíncrona de actividades de ActivityPub, evitando bloquear las solicitudes HTTP de los usuarios.
- D1 y R2: Almacenamiento relacional estructurado (SQLite en el edge) y multimedia barato sin salir de la misma red.
- Innovación con WebRTC: La inclusión de videollamadas federadas entre instancias utilizando ActivityPub personalizado para el intercambio de señalización (SDP y candidatos ICE) es un añadido vanguardista que no se ve en casi ningún otro servidor del Fediverso.
Y así fue como empezó esta aventura en la nube, el proyecto sigue en desarrollo y se buscan colaboradores que no les de miedo traspasar los límites establecidos de la tecnología, nos leemos por la nube federada 👋
Comments
No comments yet. Be the first to react!