The fundamental benchmark of success for any application is how faithfully it models your real-world business process. Can your commerce application convey all aspects of your products to potential customers? Do business rules and transactional models support your sales process? Are you capturing the data you need to support your operations and your customers?
Beginning application design by carefully modeling the data, rules and relationships that define the problem to be solved ensures that the application will provide the strongest value proposition and long term usefulness to its users. We typically build applications and web services with the .NET platform and leverage its excellent support for domain driven design.
In almost all cases, an application's data needs to be persisted in a dedicated database management platform. We have experience integrating with all of the mainstream relational databases including Sql Server, Oracle, MySql and DB2 as well as non-relational data stores such as MongoDB, Cassandra and Redis.
For greenfield development we generally build a data persistence layer that sits between the domain model and the actual underlying database platform. This practice allows more flexibility in choosing and changing database systems and in some cases using different types of database systems for different aspects of an application. In the case of legacy system modernization or the integration of a new application into an existing database infrastructure, this architecture allows an application to be designed and evolve without being constrained by the underlying database platform.