Olympus

Capacitats transversals compartides

.NETNext.jsPostgreSQLgRPCHelmNuGet

Olympus és la plataforma de capacitats transversals que comparteixen diversos productes de l’ecosistema. En lloc que cada aplicació reimplementi el seu propi multi-tenancy, la seva autenticació, el seu accés a models de llenguatge o la seva auditoria, aquestes peces viuen una sola vegada i es consumeixen com a paquets versionats. La idea que ho sosté és que les decisions difícils —com s’aïlla un inquilí, com es demostra que un registre no s’ha alterat— es prenen en un sol lloc i s’hereten, en comptes de repetir-se amb matisos diferents a cada producte.

Què fa

Resol d’una vegada allò que tota aplicació multi-inquilí necessita i gairebé ningú vol tornar a escriure.

  • Aïlla inquilins amb row-level security composta per aplicació i inquilí, de manera que una mateixa base serveix diversos productes sense barrejar-los.
  • Centralitza l’autenticació i la identitat federada mitjançant OIDC.
  • Ofereix un gateway d’IA comú per a l’accés a models de llenguatge des de qualsevol producte.
  • Proporciona recuperació augmentada per context (RAG) com a capacitat compartida.
  • Lliura notificacions multicanal amb una sola configuració.
  • Executa accions sortints idempotents, perquè un reintent no dupliqui l’efecte.
  • Registra auditoria immutable encadenada per hash, on alterar un esdeveniment invalida els posteriors.
  • Comparteix un frontend comú per a les aplicacions Next.js de l’ecosistema.

Arquitectura

La forma de distribució és tan important com les capacitats: tot es publica com a paquets, i la coherència entre ells es verifica a la integració contínua.

  • Monorepo dual .NET i pnpm amb 27 paquets NuGet publicables organitzats en capes, més un meta-paquet que fixa el conjunt.
  • Paquets npm per a la interfície i el nucli del dashboard, amb el seu propi meta-paquet.
  • Versionat en lockstep entre els dos ecosistemes, verificat per tests que fallen si algun es desincronitza.
  • Contractes canònics en Protocol Buffers com a font de veritat de la comunicació entre serveis.
  • Guardrails d’integració contínua i tests de contracte i estructura que impedeixen que un paquet se surti del disseny.
  • Infraestructura de proves amb imatges fixades per versió, perquè un test no canviï de resultat per una actualització aliena.
  • Desplegament mitjançant charts Helm de tipus umbrella i llibreria, amb observabilitat a Grafana.

Stack

Backend en C# sobre .NET distribuït com a paquets NuGet en capes, frontend compartit en Next.js amb TypeScript publicat com a paquets npm, contractes en Protocol Buffers, persistència PostgreSQL amb row-level security composta i desplegament a Kubernetes amb Helm.

Tornar als projectes