Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practices for integrating third-party modules into your app

We have a few projects that involve building an application that is composed of maybe 50% custom functionality, but then pulls in, say, a wiki, a forum, and other components that are "wheels" that have already been invented that we do not wish to re-write from scratch.

These third-party applications usually have their own databases, themes, and authentication systems. Getting things to work like a single-sign-on, or a common theme, or tagging/searching across entities in multiple sub-apps are pretty challenging problems, in my experience. What are some of the best practices for this kind of integration project?

Our approach, so far, has been to try and pick your components carefully, choosing ones that have a clearly defined API, preferably via HTTP (like REST or SOAP), though that isn't always possible (we haven't found a decent forum that works that way). Are there suggestions folks can give to anyone trying to do this, as I suspect many of us are more and more frequently these days?

like image 314
Sam McAfee Avatar asked Sep 07 '08 11:09

Sam McAfee


People also ask

Why 3rd party integration is important?

Your business needs to respond to market demands quickly. Third party integrations allow you to quickly add features and tools to your business processes that might take many months to develop on your own. Even if you have the resources to develop tools in-house, those tools might need a great deal of time to refine.


1 Answers

Make sure that the interface between your application and the third-party application or library is such that you can replace it easily with something else just in case. In some cases the third-party software may just be an implementation of an standard API (Java does this a lot with JDBC, JMS, JNDI, ...). In other cases this means wrapping the third-party library in some API that you come up with.

Of course there are times to throw that idea out the window and have things tightly integrated with the third-party software. Just be sure that you REALLY want to bind your application to that third-party. Once you go down this road it's REALLY hard to go back and change your mind.

like image 168
John Meagher Avatar answered Jan 04 '23 13:01

John Meagher