collinglover
Thanks for your interest in DataExchange! When we originally architected DataExchange a few years ago we wanted to create an API that would be easy to use yet extensible while still being able to grow organically via input from churches. One thing I have learned is that the Church community has many bright individuals who tend to think way outside of their technology boxes.
A very cool aspect of DataExchange is that it was developed with a base set of constraints which included using a platform / language independent transport mechanism (XML over HTTPs) - everything else came from "Wouldn't it be cool ifs" and "Can DataExchange dos" from the community. I could go on about how great the feedback and ideas have been but I think you would appreciate some real world examples instead of my babble:
1. We had a user successfully integrate ESRI’s mapping technology and DateExchange to help his pastor understand where members live in relation to visitors, etc…
2. For non-collection methods (such as UpdateIndividual or UpdateHousehold) you can choose how the update is processed - synchronously or asynchronously. You can integrate DataExchange with your existing website by providing users a real-time login mechanism in addition to providing them with the ability to update the personal information.
3. What about an online book store? We currently have several churches using DataExchange in combination with our Payment Gateway API to process transactions and associate then with existing individuals in Fellowship One.
I could go on, but I want to point out that mspidle is correct, even though you can query on and update just about every piece of information on households and individuals, the depth of the API does not yet extend much past those entities. With that said, you make a very important point – the Data model is very complex and often time does not lend itself to extension outside of the application it was architected for - though possible it may not be practical. The difference between data and information can sometimes be a hard line, especially when it comes to how to flex that data model outside of a controlled environment.
One of the most powerful aspects of DataExchange is that is it extremely extensible - meaning that other entities can be snapped into it without breaking any interfaces and allowing you the greatest access to your data. When designing DataExchange, we based it on some of the principles of other popular RESTful architectures so the requests will always be structured the same; it's the content of that request that will change.
As for plans of future development... The following is something I said while speaking with a Church about DataExchange:
"Individuals like you are what make functionality like DataExchange awesome. Your desire to make church better drives our desire to enable you to do just that. Your thoughts, feedback, questions, and ideas live in FellowshipOne - not just in my inbox or your head. I look forward to hearing your feedback, and I thank you for helping us enhance these tools."
We want DataExchange to be a "community thing." We still have our project plans and our agile way of doing things - but the deep passion is in the user's hands and in the hearts of the developers – a smelting pot of functional ideas. I look forward to hearing your feedback, and I thank you for helping us enhance these tools.
--Nick Floyd - Application Developer