Understanding enterprise integration
Modern software development following agile practices needs to consider integration as a first-class citizen. Short-sightedness in integration may quickly turn into a flow impediment. The early and continuous testing of integrations is a good practice in agile software development to avoid this.
Designing and implementing robust integrations requires many considerations, including the following:
- The right level of coupling by choosing integration types and protocols, such as synchronous versus asynchronous and HTTP versus TCP/IP
- Non-functional requirements, such as fault tolerance, performance, data transfer size, cost of transmission, and scalability
- Appropriate data exchange and transformation mechanisms
- Implementing appropriate security controls
Designing reactive event-driven services can significantly minimize dependencies between subsystems of organically evolving systems. Organizing teams around bounded contexts...