Hi,
Mayan EDMS components are already very decoupled from each other. Most apps from Mayan EDMS themselves come from another project of mine called Imhotep which is a meta framework built on top of Django for rapid web app development. You can take the navigation, permissions, web_theme, common and smart_settings apps and develop a brand new Django project in just a couple of hours. However Mayan EDMS on the whole has grown so much as a Django project that is it not feasable to develop it as a Django app to be integrated into another project, the functionality of several app (metadata, indexing, linking, tags) would have to be crammed into a single app.
Apps in Mayan come in about three forms: generic base apps, project-centric apps, and functionality apps. The generic base apps: common, navigation, permissions, smart_settings, web_theme can be re-used in other projects with very little change, the project-centric apps: documents, main, document_indexing, document_comments are designed specifically for use with Mayan EDMS, hence the 'document_' prefix, these apps in turn are usually just a glue app for the functionality app, ie: document_comments links the document app with Django's generic comment app, document_acls links the project's documents app with the generic stand alone ACLs app, so does document_signatures with the django_gpg app.
The Document model is a basic as possible, having as little fields as possible. To extend functionality on Mayan EDMS create a new app that links to the Document model and add your required fields. This is pretty much Django's development philosophy too. Like any big project the best way to integrate Mayan EDMS into a solution involving other software is via API calls. Use the rest_api app to add the end points you need for interfacing with Mayan EDMS from your project.
Thanks,
--Roberto