Es difícil responder a este tipo de preguntas sin comprender al menos algunos de los parámetros de su servicio. Antes de comenzar, haría al menos algunas de las siguientes preguntas
- ¿Quiénes son los clientes de su API? Si se trata de navegadores, es probable que desee recorrer el camino de WebSocket más temprano que tarde. Si se trata de clientes de escritorio o un juego de servidor a servidor, probablemente pueda hacer JSON por un tiempo.
- ¿Cómo está recibiendo mensajes en su servicio? Esta decisión es probablemente tan importante como la forma en que construye el servicio real, y puede impulsar algunas de las decisiones tecnológicas en torno a la construcción de la API.
- ¿Cuáles son los parámetros operativos de su servicio? ¿Cuántos mensajes / bytes en / seg? ¿Cuántos mensajes / bytes salen / seg? ¿Cuántos clientes concurrentes? ¿Cuánto tiempo dura una conexión? ¿Cuál es la demora aceptable del percentil 99 en la entrega de mensajes? ¿Cuáles son las especificaciones de hardware para su host? ¿Cuántos de ellos en el grupo?
- ¿Cómo cambiarán los parámetros operativos en 3 meses? ¿12 meses?
Node.js es probablemente una buena opción, pero probablemente pueda hacer que casi cualquier idioma funcione en una escala de 10 a 100 mensajes por segundo. Usamos Scala en Twitter, lo que significa que tratamos con JVM JIT y GC. No ha sido un problema para nosotros en este sistema, pero estamos dispuestos a tolerar los ocasionales problemas de entrega de 100 ms cuando se comparan con los beneficios que nos brinda la JVM.
En cuanto al formato / protocolo de mensaje, parece que WebSockets es el futuro, pero el soporte en el presente es desigual. Preferimos JSON, ya que es ampliamente compatible, más compacto que XML, más rápido de analizar que XML (comparado con Scala XML y StAX vs. GSON y Jackson), y nuestros formatos de mensaje no son lo suficientemente complejos como para garantizar una escritura y definición más fuertes que Ofertas XML.
- ¿Qué debo hacer después de la arquitectura si quiero ser diseñador de escenarios?
- ¿Cuál es la definición de violación de los derechos de propiedad intelectual en la arquitectura? ¿Existe una definición más clara que el acuerdo de Berna?
- ¿Cuáles son los artefactos más interesantes de la arquitectura de Christopher Wren para ver en Londres?
- ¿Por qué las empresas de arquitectura están migrando a Revit?
- ¿Es posible construir una nueva ciudad que sea resistente a la madre naturaleza? Por ejemplo, a prueba de huracanes, tsunamis, terremotos, etc.