Coder Social home page Coder Social logo

Comments (2)

ScorpionConMate avatar ScorpionConMate commented on July 27, 2024 11

Con el poco tiempo que hay, es practicamente imposible montar una estructura de microservicios
Es mas facil levantar el monolito que tener que levantar 10k de microservicios y sin saber cual es que esta abajo realmente

from sistema-anti-fraude-electoral.

mastepanoski avatar mastepanoski commented on July 27, 2024

Dejo algunas ideas, para lograr aprovechar herramientas disponibles para ahorrar implementar algunos servicios y para escalar:

En cuanto a la seguridad, se podría utilizar Keycloak para manejar la gestión y autorización de usuarios, o bien AWS Cognito en combinación con Cerbos.dev (https://cerbos.dev/ecosystem/cerbos-aws-cognito). De esta manera, se implementaría una solución ya existente sin necesidad de reinventar la rueda.

Para el procesamiento por lotes y tareas, se podría utilizar OptimalBits/Bull junto con Redis (https://github.com/OptimalBits/bull).

Además, se podría iniciar con un Microlito (https://www.paradigmadigital.com/techbiz/microservicios-vs-microlitos-vs-monolitos-ventajas-desventajas/), desarrollado en NestJS+Fastify (https://docs.nestjs.com/techniques/performance) o utilizando HapiJS con plugins (https://hapi.dev/, desarrollado por Walmart para gestionar el volumen de carga en un Black Friday).

En cuanto al autoescalado, si no se utiliza Kubernetes y la posibilidad de escalado horizontal, se podría utilizar PM2 con autoscaling (https://vexell.medium.com/autoscale-node-js-applications-with-pm2-and-pm2-autoscale-module-3129582dc72c). Sin embargo, hay que tener en cuenta que PM2 tiende a reiniciar el servicio si un proceso de NodeJS alcanza el límite de memoria asignado. Creando varias instancias del microlito que contiene todos los módulos sería una forma de gestionar la carga utilizando clustering con PM2, dentro del límite de escalado vertical del servidor (memoria, caché en disco y procesadores).

Finalmente, una arquitectura CQRS sería lo ideal, ya que permite manejar las altas escrituras por un lado y gestionar las lecturas (aunque sea con retraso) por otro.

Espero les sirva esta información para facilitar la implementación del backend y la infraestructura.

from sistema-anti-fraude-electoral.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.