Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Kaledros

#57840 Cada vez estoy más desencantado con los eventos y el event driven de los huevos porque siempre los veo usados como fanouts y que lo recoja quien quiera y eso es una mala práctica acojonante, pierdes el control del estado de tus objetos constantemente. Para eso usa mensajes o incluso HHTP entre servicios.

1 1 respuesta
desu

#57841 luego haces una entrevista tecnica, les dices eso... y te responderán que te falta seniority : - P

otras preguntas, cuantos items tiene esta gente? PcComponentes? hay tantos productos que si quieres cambiar una categoría, no lo puedas tirar en la db directamente? por ejemplo? es que si tienes cientos de millones... es un momento... y no tienes ni down time..

Voy a resolver un caso de uso, aplicar un descuento. El descuento si quieres lo puedes tener en un servicio a parte. Y que el frontend al pedir un producto se le devuelva producto+descuento aplicado, y el TTL en la CDN es el tiempo que dura el descuento... Con eso ya cubres la mayoria de casos de uso y esta todo cacheado...

y ahora imagina q quieres cambiar un descuento o borrarlo.. dos casos: a un producto, es una petición simple, a multiples productos, es un batch. de nuevo necesitas hacer update de la CDN... quizás aqui quieres hacer un evento y hacerlo todo en batch... pues aqui un Kafka (o una dynamodb la verdad...) te puede valer como cola para hacer los updates y tener retries y saber cuando esta todo... pero de nuevo. esto es un caso super básico, que si esta todo bien diseñado, hacer update de cientos de millones de productos, es cuestión de segundos, y los fallos seran un 0.0X% de las peticiones... en fin... que es una bobada hacer todo esto.

las únicas operaciones donde necesitaras un batch serán las que sean con N productos, y ojo, que si tienes una DB que te permita hacer transacciones en batch de manera fácil y barata simplifica mucho... todas las demas son triviales.

nse, este caso de uso es por lo que he puesto en la imagen de arriba de aplicar descuento, badges, tags... básicamente hacer un update de la metadata de un producto. se resuelve:
1- lo tienes en la misma tabla que el producto
2- lo tienes en una tabla a parte y haces join
3- haces batch para los updates de management(es decir eventos generados por ingenieros no clientes)
4- incluso si un cliente puede aplicar descuento a sus productos, cuantos productos tendrá? 100M? seguro que no... en este caso de uso de un cliente aplicar promociones a sus propios productos es algo que puedes hacer en una petición sin problema seguro.

es que las reglas de negocio se utilizan para determinar tiempos de cache, TTL, el 99% de los casos de uso... y es trivial... si por ejemplo un producto en PcCompoenntes solo puede durar como máximo 3 meses, pues ahi lo cacheo 3 meses, mi backend ya no funciona... y solo funcionara en cualquier update/delete... como el caso que he puesto arriba. Es que es super fácil jaja.

Otro caso de uso, los cupones. Cuando compras X cosas, al terminar, y aqui esta la clave, te darán cupones. Esto es una petición. Que de nuevo, esta bien hacerla en un batch y async usando una cola al terminar de comprar, asi el cliente no espera 2ms extra... jajaj , pero es tan dificil y costoso en latencia que no puedes hacer cuando tramitas la compra? es que literal es hacer una petición a una DB, y muchas veces no necesitas ni otra tabla... vas a hacer un UPDATE de 1 ROW, porque necesitas tener una cola??? tanto te falla hacer 1 UPDATE de 1 ROW??? Hacer la operación de comprar y hacer update de los cupones del cliente es algo tan fácil de hacer transaccional, donde esta la dificultad y la probabilidad de fallo? Que DB estas usando exactamente que falla tanto en hacer 1 update de 1 row??? jajaj es que juro que no entiendo.

Y no digo que estas operaciones transaccionales no puedan fallar, y sea necesario hacer rollbacks o retries y haya que vigilar. Pero meter una cola y hacer mil millones de eventos no es la solución para casi nada de lo que se usa... Hacer un retry por HTTP, a no ser que este la DB down, sera suficiente. Y si no es suficiente es que tienes 10k req/s solo en ese endpoint y tienes que meterle un batch... pero de nuevo, incluso si tienes 10k req/s es super trivial... la dB se come un batch de tamaño 10k rows sin problema... los problemas los tienes cuando tienes millones de peticiones de COMPRA por segundo que afectan a multiples TABLAS, pero eso, sorpresa, no sucede... que PcCompoenntes vende 200k productos en su mejor semana. (2019) Son unas 20 peticiones por minuto... 20 por minuto.... tanto se te atragantan las DB? HHAHAHAHAH

desu

No se, sino que alguien me explica, de donde cojones tienen 60-70M req/s PcComponentes a servidor. No contando la CDN. Porque esos números, ni Amazon y no es coña. Suponiendo que la cache se come el 90%. Si te llegan 70M req/s. Es que en CDN tienes 700M req/s.

Pero bueno, A ese ingeniero de PCComponentes es un fpero, B ese ingeniero trata de engañarnos.

Me quedo con A. No asumir maldad sino inaptitud.

https://clictadigital.com/how-many-google-searches-per-day-are-there/#::text=How%20Many%20Google%20Searches%20Does,three%20to%20four%20searches%20daily.

Google doesn’t disclose search volume, but as previously mentioned, it’s believed to handle 99,000 searches per second, totaling 8.5 billion daily and around 2 trillion annually.

Según el ingeniero de PcCompoentes, quizás los llamo FPCompoentes, HAHAHAHHA, hacen 10 veces mas trafico que Google. O casi el mismo. Que creéis?

Para información, en el laboro, uno de los servicios mas grandes del mundo, tenemos 250k req/s a CDN. K, no M. Mas que amazon.es, el ecommerce con domino .es.

Que de nuevo, esos numeros de FPCompoentes, en CDN, ya son de locos jaja Mi teoría, es que en verdad hacen X req/s, pero el tio ha dicho los eventos que generan, es decir, la sobre-inginieria como en el caso anterior que he expuesto. Si te llegan 10 peticiones, y generas 40 eventos por petición, tienes 400 eventos... x40... y eso internamente se volverá a doblar con un x2 y terminas con 800 eventos x segundo... y eso seguro que esta mas cerca de la realidad.

1 respuesta
Kaledros

#57843 Acabo de ponerme el vídeo y no doy crédito.

Literalmente dice que en el black friday tienen 60k usuarios simultáneos que se traducen en 60-70M de peticiones POR SEGUNDO. O le bailan los números por dos o tres órdenes de magnitud, y quiero pensar que no porque se habrá preparado la presentación, o es una absoluta locura que cada usuario genere mil peticiones cada segundo. Es imposible. No se me ocurre cómo puedes tener algo así montado, estamos hablando de un nivel de tráfico que ni el WoW el día de lanzamiento de expansión para una puta tienda online, ¿qué hace toda esa gente que genera eventos como si fueran caramelos?

En mi curro tenemos +-300M de eventos al día y no somos un blog de Wordpress, precisamente.

1 respuesta
pantocreitor

Me imagino el back de esa gente y que para hacer cualquier petición haga 20 llamadas a diferentes micros o queries a base de datos (que no sería la primera vez que veo algo así)

PhDfailer

Que alternativa a kafka para comunicacion asincrona entre microservicios en kubernetes y que sea resiliente a interrupciones del servicio y permita recuperar el estado en todo momento ?

Pregunta legitima, porque a mi kafka me parece la mejor solucion para eso, no tienes porque usar un supercluster de kafka, puede ser algo "humilde", sin tener que reinventar la rueda. Muchas veces los clientes quieren servicios contrastados.

1 respuesta
desu

#57846 La pregunta que haces esta muy mal planteada.

Que problema resuelve Kafka? Que problemas RESOLVIA Kafka? Kafka se invento en 2010... en 2024 el estado actual del software y hardware es otro COMPLETAMENTE distinto...

  • communication asincrona? no necesitas kafka
  • entre microservicios? no necesitas kafka
  • kubernetes? no neceistas kafka
  • resilient a interrupciones de servicio? no necesitas kafka
  • permitir recuperar el estado? no necesitas kafka

de hecho te diria que kafka "no resuelve" nada de lo que dices. Kafka es el buffer/log en stream y las colas... Nada de lo que dices tiene que ver con eso. Para que veas lo perdidos que vais.

1 respuesta
aren-pulid0

#57847 resuelve el enigma, que me tienes harta intrigado

s4suk3

#57844 algo fuman ahí

MTX_Anubis

#57836 Escucha: 200 tablas de BD en una petición de compra. 60K de usuarios y 70M req/s (que imagino que serán eventos generados porque si no es imposible) es que es de haberlo hecho mal y ya está. A saber que mierda tuvieron montada ahí.

Estos no eran los del CTO flipado que fue el que cambio toda la arquitectura e infra y se les fue al garete todo en el Black Friday y lo despidieron?

Dicho esto anda que no hay empresas en España que te venden la excelencia técnica y hablas un poco con ellos y tienen unos mojones del estilo montados de cuidado

1 respuesta
desu

#57850 Si esta claro. Es una autentica porqueria. Y lo sacan en Codely como la gran re-ostia de las buenas practicas...

pantocreitor

Se de buena tinta que están intentando renovar el sistema ya que hablaron con una persona que les asesorase sobre como plantear estos cambios ya que la arquitectura actual es insostenible a medio/largo plazo.

1 respuesta
Wei-Yu

yo por eso cuando veo lo de cqrs+es en una oferta lo ignoro

igual tienen una justificación e igual tiene sentido lo que han hecho pero de base no me fío y en una entrevista, o incluso sin verlo tú mismo, es imposible sacar si tiene sentido o no

desu

#57852 Me pueden tirar un mensaje privado, mis tarifas empiezan en 300 euros la hora.

Es que no solo tienen esa mierda montada, sino que se exponen en Youtube haciendo el ridículo mostrándolo...

A mi la verdad me sabe mal porque es una empresa española... Lo he dicho muchas veces, como Mercadona tech o Inditex, que son estercoleros de ingeniería... Que pena que no tengamos una buena industria tech en España.

2 respuestas
Wei-Yu

menos mal que tenemos myinvestor como atalaya patria de la buena praxis ingenieril

Leagrove

Voy a escribirle un mensaje a Miguel Angel, a ver si nos hace un video explicando un poco la problemática y que soluciones adoptaría él si estuviera en el equipo de desarrollo/responsable

1 respuesta
pantocreitor

#57856 subirlo a Vercel y llorar por YT cuando se caiga

2
Kaledros

En estos casos la empresa tiene suerte porque el producto da mucho dinero ahora mismo y no tienen que darse prisa en cambiar nada, simplemente con ir moviendo sistemas poco a poco a un backend nuevo van que arden.

De todas formas lo que me deja loco es esto:

#57854desu:

se exponen en Youtube

Me refiero, todos en este hilo sabemos que ese sistema es insostenible, una bomba de relojería, que está muy mal montado y que la única excusa posible debería ser "teníamos que sacar el MVP en dos meses o nos íbamos a la ruina". Como mucho, se podría hablar de él como caso de uso cuando el dinero se acaba y tienes que tomar atajos guarreros, para que la gente vea que no todo es bonito y a veces tienes que sacrificar corderos para ganar dinero. Bueno, vale. Pero es que no está haciendo eso, está PRESUMIENDO de sus sistemas, que me parece el colmo del no enterarse de nada.

Y lo mejor de todo: presume diciendo que eso lo aprendieron en Codely y los otros dos apardalaos encantados de la vida. Es que es para matarlos.

1 respuesta
MTX_Anubis

Es que ves esto:

https://youtu.be/fr1QvKg_6MU?t=867

Y puedes empezar a entender como se generan 1000 mensajes/seg. por cada usuario (porque lo de 70M req/sec estoy seguro de que se equivoca y se refiere a los mensajes). Tienen comandos, handlers de commands, eventos, handlers de eventos y toda la puta mierda que crece de forma exponencial y no hubo nadie ahí que pensara que eso que estaban haciendo era una puta locura.

Lo peor es pensarte que porque has conseguido encajar toda la complejidad innecesaria lo estás haciendo bien (solo por el mero hecho de que es complejo). Hay que ser alelado

#57858Kaledros:

Y lo mejor de todo: presume diciendo que eso lo aprendieron en Codely y los otros dos apardalaos encantados de la vida. Es que es para matarlos.

Esa parte me ha dado vergüenza ajena: No sabemos como hacer esto así que vamos a vernos unos videos por YouTube y lo implementamos como esqueleto central de nuestra arquitectura. Es que nadie al volante.

3
desu

Da mucho dinero? Una mierda.

Se nota que no sabéis el dinero que cuesta esa infraestructura y la gente que contratada... El dia que veais una factura de un equipo de desarrollo lo mismo os pegais un tiro.

Si yo fuese el jefe y mis costes de operación fuesen los de PcComponentes hace años que habria echado a todos a la calle... Pero el pobre desgraciado, mal aconsejado, se fue a buscar ayuda a fperos de Fpley y su equipo de super cracks... que le montaron una mierda que aun es mas cara y va a pedales.

Le sale mas a cuenta a PcCompoentes estar 6 meses sin vender nada y empezar de cero que mantener los costes que tiene. Esa es la cantidad de dinero que queman.

PhDfailer

Montaos un competidor más eficiente y le coméis la tostada si tan claro lo véis.

1 respuesta
Kaledros

6
pantocreitor

#57861 yo pogramo no vendo casharros

RESPUESTA SERIA: monté un taller de reparación con un conocido hace muchos años pero ya existiendo PCComponentes y a nivel de costes al por mayor es imposible competir con ellos. Su volumen es tan alto que tienen unos precios ridículos en comparación con lo que tu puedes tener como vendedor al por menor. Llega al nivel de que hablando con proveedores te decían que aunque comprases la misma cantidad que ellos, ellos iban a tener un precio mejor por ser habituales, ser constantes, etc...
Por lo que no, hacerle la competencia es muy muy muy dificil.

Otra cosa diferente es que mas de la mitad de este hilo te monta a nivel de software algo mucho mejor de lo que tienen montados ellos mientras plantamos un pino.

PhDfailer

El PIPero, cuando está en una empresa: yo no doy mi opinión, ni aporto mi solución a pesar de saberla, porque eso implicaria currar y el empresario muy malo y no me valora

El PIPero también: Que mal lo hacen las empresas que facturan millones, si yo estuviera ahi las cosas cambiarian.

Ridiculo

1 respuesta
Wei-Yu

es open source arregla el código tú

el código: 1M líneas sin tests

Fyn4r

#57854

Inditex, que son estercoleros de ingeniería

Inditex es peor que un estercolero

1 respuesta
Kaledros

#57866 Y tú aún pillaste una camiseta (¿te la dieron al final?)

1 respuesta
Fyn4r

#57867 Si, me rajé antes de la entrevista presencial en las oficinas (aunque ahí me habrían echado casi fijo xd) y me enviaron la camiseta y el bono aquel de learning

2
desu

#57864 esas empresas no facturan millones gracias a ese código, al contrario, estamos todos de acuerdo de que estan quemando dinero y reduciendo sus beneficios en millones...

Si son 50 ingenieros, seguramente con 5 sobra. 5 * 100 = 500k
Y si estan gastando 2M en hardware y computación, seguramente con 200k euros, menos que los ingenieros, sobra.

Tu puedes tener una empresa como levels.fyi que era un excel y un frontend, que costaba 200 euros al mes, facturando +50k euros al mes. El equivalente seria que esa empresa estuviese en perdidas... todos estos fperos si estuviesen en startups empezando o empresas con poco margen, arruinan la empresa.

Que habria que ver los numeros de PcComponentes, esta claro q juntarse con codely les ha supuesto millones de euros de perdidas anuales...

1 respuesta
PhDfailer

#57869 pues eso, muchas veces heredas cosas y tu como ingeniero que entras ahi, no te vas a poner a cambiarlo todo. Primero, porque como nuevo no tienes autoridad, segundo, porque es un trabajo monumental y costos a corto plazo, mientras que lo otro "funciona".

A ellos (negocio) se la suda porque su negocio no es infraestructura/software y está dentro del budget.

Simplemente me hace gracia que a ciertos usuarios les salten las alarmas y critiquen a esos equipos cuando ellos en su curro hacen lo mismo o peor de que se la sude todo menos cobrar a fin de mes.

3 respuestas