<aside> ⚠️ Sabemos que en estos documentos de onboarding/arquitectura, muchas cosas quedan desactualizadas cuando los sistemas evolucionan. (O podrían estar mejor explicadas).
Siéntete libre de comentar, sugerir actualizaciones, o crear documentos nuevos para profundizar en cualquiera de estos temas.
</aside>
La mayoría (Si es que no el 100% 🔥) de nuestro código está escrito en JavaScript, con Typescript.
Usamos React con NextJS para nuestros clientes de frontends. Deployeando en Cloudflare Pages. (Más que nada porque vercel cuesta mucho $$$$ por persona … y es $ que no tenemos porque somos una comunidad sin fines de lucro 😞…. y cloudflare es gratis! 😀)
Nuestra BDD está hosteada en Turso. (En parte porque es súper rápido…pero también porque es súper barato 😀… Hablaremos de esto un poco más adelante)
Tenemos una API, en Graphql, que esta hosteada en Cloudflare Workers. Donde también está hosteada la mayoría de nuestros servicios de backend (porque es super barato 🙂).
Toda nuestra infraestructura está en Cloudflare. Estamos usando Cloudflare Workers para nuestras APIs, Crons, Queues, Queues Consumers, Backend, etc. (Puedes aprender de los servicios para desarrolladores de Cloudflare acá, y específicamente sobre workers acá)
Nuestro stack de Observabilidad — solo logs por ahora — está en Highlight.io. (Grátis hasta 1 millón de logs/mes).
Nuestra autenticación está montada sobre Clerk. El dominio auth.jschile.org, es donde centralizamos nuestra autenticación, y los distintos clientes (gallery.jsconf.cl, tickets.jsconf.dev, una app mobile, etc) pueden usar las librerías de Clerk, para redirigir a dicho para autenticar a sus usuarios, y que estos sean redirigidos de vuelta.
Diagrama de arquitectura actual al 26 de noviembre del 2023