Advanced Distributed Systems Design with SOA, part 2 of N
(This is part 2 of my notes from the ADSD-SOA course. You'll find part 1 here .) Due to the fallacies we have already discussed, whenever possible, favor in-process execution over remote procedure calls. An in-process call, takes about 10 microseconds to execute. A Remote Procedure Call over the Local Area Network, takes somewhere between 500 microseconds to 1 millisecond, i.e. 50 - 100 times slower than the in-process one. When we step out into a Wide Area Network, we end up with call times of about 50 milliseconds. That is another 50 times slower. Now, imagine that we have a remote object on which we read or write a couple of properties. Not scared yet? What if we put the calls in a loop. But we don't write code like this, right? Enter Inversion of Control and Dependency Injection. IoC is great, don't get me wrong. However, a caveat of this technology, is that you do not know whether or not your service is local or remote. In fact, that's one of its value proposit