Key-Value Store Service
=======================

This example implements a AutobahnPython based WAMP server with RPC
endpoints providing a persistent key-value store.

The example also demonstrates how to run the WAMP server and a
Twisted Web based web server under one port/service.

A browser based UI is included which uses AutobahnJS to access
the decimal calculator service.

A AutobahnPython based client is also included.

Further, since it's a standard WAMP service, any WAMP client can use
the service. You could access it i.e. from a native
Android app via AutobahnAndroid.


Running
-------

Run the server by doing

    python server.py

and open

    http://localhost:8080/

in your browser.

To activate debug output on the server, start it

    python server.py debug

This will show up all WAMP messages exchanged between clients and server.


Perspective
-----------

**Persistence**


The service uses the standard Python **shelve** module for persistence.

You can easily adapt that to store data instead in something like
*sqlite*, *PostgreSQL*, *memcached*, *Riak*, .. whatever.


**Change Notification**


You can also easily extend the example to provide PubSub events for automatic change notification.

Upon creating, updating or deleting data for a key, just *dispatch* a PubSub event server-side.

Clients can subscribe to *keys*, and will get notified when data changes.
