Leyendo la impresionante (por el contenido) presentación de la arquitectura de eBay (vía Tecnorantes) he visto reflejada parte de mi filosofía de programación (que no siempre he podido seguir, por desgracia).
Uno de los puntos que más me ha gustado leer es lo de: “No stored procedures”. Es algo que siempre me ha parecido incorrecto, el poner parte de la lógica de la aplicación en la misma base de datos, lo he hecho, claro, pero nunca me ha gustado. Primero: creas una dependencia con el sistema de base de datos elegido. Segundo: cargas al servidor de base de datos con un trabajo extra, que en determinados entornos no es conveniente. Tercero: Te obliga a programar en lenguajes que en muchos casos, veáse TransactSQL, son una birria para desarrollar y no digamos para depurar (_aunque últimamente esto ha cambiado_)
Desarrollar la lógica separada de la base de datos tiene la ventaja que puedes utilizar una infraestructura n-tier, puedes manejar el repositorio de código fuente mejor, es más fácil incorporar nuevos programadores puesto que todos desarrollan en el mismo lenguaje, puedes reaprovechar código…
Una buena recomendación, en la mayoría de los casos.

