Federated Database Design

Federated database design relates to carrying service oriented architecture into the database layer. Because SQL Server 2005 has several application server-like capabilities (i.e., SQL Server Integration Services, SQL Server Service Broker, Web Services and the SQL Server CLR), these capabilities promote the consideration of a loosely-coupled archtecture that carries all the way to the database layer. The idea here is to consider moving away from a monolitic database design where a single database has hunderds of tables in a robust application, to a paradigm where there are multiple, modulare databases that are exposed through a services abstraction layer (i.e., web services) to a consuming application. Couple this with an asynchronous communication scheme, and you have an application which is not dependent on the immediate availability of its parts. Each part/service transmits messages to its counterparts. If the counterpart is present, it consumes the message. If not, the message is stored and sent when the service becomes available. This now means that there is new flexibility with regard to patching, maintaining and upgrading applicaiton componenets.