Editorials

Inappropriately Implementing an Enterprise Architecture

Over-engineering is always a possibility in any application. In the last few months I have seen a number of different examples of over-engineering. I find it interesting that they all have one thing in common. The application had poor performance and therefore wouldn’t scale to handle the load. Instead of addressing the core cause the systems were resolved using a complicated architecture.

For example, when you have long running processes it makes sense to do one of two things:

  1. Speed up the process so it is not long running
  2. Make the calls asynchronously and use notify on completion for the client to continu

What option do you choose? Option two requires a lot of architectural communication at a minimum of asynchronous calls, often including queuing technologies and other frameworks.

If you can reduce the processing time so it returns results in a period acceptable to the client that may be a far better option. Of course that is a generalization, and more scalable architectures are appropriate in some situations, even if the process is fast.

Have you seen enterprise scale architectures used for applications where it doesn’t address the root issue? How do you know you need an enterprise architecture when building an application? Can you know at project inception? Share your thoughts here or by email to btaylor@sswug.org.

Cheers,

Ben