Problem

The system had been designed along the lines of object-oriented design, and so the objects had exposed their methods to the remote objects in a well-crafted manner. If only there weren't any nasty performance problems! In a word, the system ended up being so slow that it was practically unusable!

The overhead that was incurred by communication proved to be detrimental, as the exported object interfaces were far too fine-grained to be used in a sensible way from remote machines.