How much do developers really need to know about infrastructure? I read an article recently about developers becoming further removed from the infrastructure. Which on the surface sounds pretty good. Tools make you more productive, auto generating this and that. But how does that play out in the integration landscape? The more abstracted the developer becomes from the underlying infrastructure, the less likely the developer is going to be able to deliver reliable integrations. So what does that really mean?
Integration reliability depends on the developer understanding the infrastructure. What happens when the network is down? What happens when a database connect fails? What happens if two targets are updated but the third one fails? How does the integration respond to the various runtime errors that can occur when traversing multiple distributed systems? Most of this stuff takes place asynchronously making the matter even more difficult. I plan sharing some my experiences with designing for these types of events in the integration layer. Some of the hard lessons learned.