By way of further answer:
The use of a database as an interprocess communication mechanism is
considered an antipattern (the opposite of a "best practice"):
https://en.wikipedia.org/wiki/Anti-pattern#Software_design
https://en.wikipedia.org/wiki/Database-as-IPC
While relational databases perform the worst at this, the fundamental
problem is using the database as a work queue for ephemeral/real-time
data. Simply using a faster, and/or nonrelational database, doesn't
remove the problem, it just makes the setup perform better. It's a
difference of degree, not kind.
Ultimately, databases — including in-memory key-value stores — are for
storage, not for IPC. This doesn't stop them being routinely used as
such by people who do not know how to write IPC mechanisms and
middleware of their own. That's less excusable in an era with lots of
prefabricated options, whether message queues (e.g. AMQP) or distributed
systems closer to the application level (like DMQ).
-- Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web:
http://www.evaristesys.com/,
http://www.csrpswitch.com/