Bernie Sumption edited this page May 11, 2015 · 10 revisions

OGRE logo

Welcome to the OGRE wiki. This site explains how OGRE works, or you can read about the project vision on my blog.


This project dates back to 2010. It was my attempt to solve a particular problem in realtime web applications that has now been addressed by the meteor framework's DDP protocol. I'm keeping this page here for historical interest.

Use cases

OGRE does one thing and does it well: it provides a read-only copy of server-side data. There are two envisaged use cases:

Passive monitoring client

Your client needs to present a real-time view of a changing data set on the server, but has no controls to edit server-side data.

  • Add the OGRE library to your server build
  • Configure a data source and transport - See the ServerMain class of the friendgraph-demo module for an example
  • Create a client using the appropriate transport adapter - See the ClientMain class of the friendgraph-demo module for an example

That's it. As the data changes on the server, update messages will be sent to the client, keeping the client engine in sync with the server.

Two way request/response client

Your client presents server-side data and allows users to edit it. These steps assume that your application has some existing request/response mechanism to handle editing requests, such as a SOAP web service.

  • Set up a passive monitoring client/server system as above
  • Create an editing control in the UI, for example a button
  • When the button is clicked, submit a request to the server through your independent request/response mechanism
  • The server should perform the editing action, but not return any information other than a report on the success or failure of the action
  • The client then waits for the results of the editing action to propagate through the OGRE replication. The UI will update automatically.