Hi Ian,

2011/11/5 Ian Walls <ian.walls@bywatersolutions.com>

Am I being crazy?  Is this a valid issue?  Are the advantages of being able to talk to more external products greater than the risks of a few specific company's products getting hardcoded into our ILS?


The point is well taken. However, I tend to think that if we were to isolate the unique code for external product Z to something like C4::ExternalServices::Z. and the database fields unique to a new table Z, this would sort of quarantine any "undesirable" aspects of product Z. The installation of the schema for table Z could be triggered by both a choice in the installer or the running of an separate install script (install_z) later by the sys-admin. The installer would simply call install_z if the choice was made at install time. install_z would recognize that the db was populated (if this were a later addition) and handle any db housework accordingly.

Furthering this thought of convenient abstraction, we could have C4::ExternalServices which would provide basic API between Koha and the various C4::ExternalServices::FOO modules.

Whatever way we take, quarantining/abstraction should help keep your "fear" from being realized.

Kind Regards,
Chris