Architectural Principles
We believe in the importance of sound architectural design and software engineering. We adhere to the concepts of component-based design encompassing service-oriented architectures, message-based architectures and event-driven architectures.
Component-based design is a way of dealing with complexity by allowing it to be broken down into simpler pieces. Components are units of software which are independent, or loosely coupled, and each one performs a specific task and has a well-defined external interface.
These architectures are very well suited to trading environments where discreet functions, such as trade validation or trade routing, can be developed once and reused many times across the enterprise. Digiterre has extensive experience in enterprise service bus-based architectures, service-oriented and event driven architectures and designs and builds these types of solution.
The benefits to component-based development are:
- Reuse of components across the enterprise reducing cost and complexity of systems
- Consistency and quality of systems: as components are reused across the enterprise the replicated functionality is common and therefore consistent - for example the validation routines used for a trade originating in one part of the business will be the same as those used by another
- Scalability and availability: componentization of systems allows processing resources to be easily allocated across the enterprise
- Adaptable to change: in component-based systems it is far easier to plug and unplug components without disturbing upstream or downstream systems
- Supports Agile development practices: component based design is complementary to Agile development methods as Agile breaks projects into short chunks of work that deliver working iterations software