Cuando un Junior me pregunta algo que no sé, le respondo: "Tengo una solución en mente, pero quiero ver cómo lo abordas tú, investiga un poco."
Básicamente, espero a que él encuentre la solución para aprender yo.
La distancia estándar entre rieles en los ferrocarriles de Estados Unidos es de 4 pies y 8.5 pulgadas. Un número bastante extraño, ¿no?
¿Por qué se usa esa medida?
Porque así se construían los ferrocarriles en Inglaterra, y los primeros ingenieros que diseñaron las vías en EE. UU. eran ingleses.
¿Y por qué los ingleses usaban esa medida?
Porque las primeras líneas ferroviarias fueron construidas por las mismas personas que fabricaban los antiguos tranvías de carros, y ellos simplemente usaron el mismo ancho.
¿Y por qué los tranvías tenían ese ancho?
Porque quienes los construían usaban las mismas herramientas y plantillas que utilizaban para fabricar carros de carga… que también tenían esa separación entre ruedas.
¿Y por qué los carros tenían ese espaciamiento tan peculiar?
Porque si usaban uno diferente, las ruedas se rompían en los viejos caminos de larga distancia en Inglaterra.
Esos caminos tenían surcos formados por siglos de uso, y la medida de las ruedas debía coincidir con esos surcos.
¿Y quién hizo esos surcos?
El Imperio Romano, que construyó las primeras grandes rutas por toda Europa (incluyendo Inglaterra) para mover a sus legiones.
¿Y de dónde venían esos surcos?
De los carros y cuádrigas romanas, que tenían un ancho estándar. Como todos estaban hechos con las mismas especificaciones, los surcos quedaron fijados para siempre.
Así que la distancia estándar del ferrocarril estadounidense —4 pies, 8.5 pulgadas— proviene, indirectamente, del ancho de un carro de guerra romano.
Las burocracias realmente duran para siempre.
Así que, la próxima vez que recibas un procedimiento o especificación y te preguntes: “¿Qué cabeza de caballo inventó esto?”… quizá tengas razón.
Los carros de guerra romanos eran lo suficientemente anchos para acomodar el trasero de dos caballos. (Sí, dos traseros de caballo.)
Pero aquí viene el giro final:
Cuando ves un Transbordador Espacial en la plataforma de lanzamiento, notarás dos enormes cohetes laterales unidos al tanque principal. Son los SRB (Solid Rocket Boosters).
Los SRB eran fabricados por Thiokol en Utah. Los ingenieros habrían preferido hacerlos más anchos, pero no podían.
¿Por qué?
Porque debían transportarse en tren desde la fábrica hasta el centro de lanzamiento. Y la vía férrea pasaba por un túnel en las montañas.
Ese túnel era un poco más ancho que las vías… y las vías, como ya sabes, tienen un ancho basado en los traseros de dos caballos romanos.
Así que un detalle crucial del diseño del Transbordador Espacial—uno de los sistemas de transporte más avanzados del mundo—terminó siendo determinado, hace más de dos mil años, por el ancho del trasero de un par de caballos.
Hoy pero hace 533 años el gilipollas de Cristóbal Colón decidió ver qué pasaba si remabas sólo en una dirección, y ahora tengo que ir en el metro teniendo que escuchar a Romeo Santos mientras me venden chupachups y hacen videollamadas a grito pelao.
memphis may fire viene a españa en marzo quien se viene a razz a verlos??? es la primera y probablemente la última vez que vengan a españa y yo no me puedo morir sin verlos en directo
Una pregunta típica en entrevistas técnicas:
¿Cuál es la diferencia entre API Gateway y Load Balancer?
API Gateway decide a qué servicio va la request:
1) recibe la request del cliente
2) aplica auth, rate limit, logging, etc.
3) enruta a pagos, productos o usuarios
Load Balancer decide a qué instancia va la request:
- no le importa si es pagos o productos
- solo reparte entre instancias sanas del servicio
En la práctica trabajan juntos:
1) Cliente envía la req.
2) Load Balancer elige una instancia sana de un API Gateway
3) API Gateway enruta al servicio correcto (ej: pagos)
4) Load Balancer interno elige una instancia sana de ese servicio
El objetivo es lograr que tu sistema sea resiliente y escalable, evitando single points of failure.
Microservicios es una arquitectura que divide tu app en servicios independientes (pagos, usuarios, facturas, etc).
El desafío aparece cuando la cantidad de microservicios crece:
- el cliente necesita conocer la URL de cada servicio.
- repetís lógica común en todos (autenticación, cache, rate limits).
- si cambia una URL, tenes que actualizar al cliente.
Para resolver esto se usa un API Gateway:
un único punto de entrada que se ubica entre el cliente y los servicios.
¿Qué ganas?
1) Centralizar: el cliente habla solo con el gateway.
2) Proteger: valida, autentica y limita requests.
3) Optimizar: aplica cache y transforma respuestas.
4) Conectar: enruta cada request al servicio correspondiente.
Si necesitas ir al servicio de pagos:
cliente → gateway → payments.
Si no los diseñas bien, se transforman en un cuello de botella o single point of failure.
En sistemas grandes siempre vas a encontrar gateways como NGINX o AWS.
Son clave para mantener orden y control cuando tu app escala.