totalperspective / oolon

Bloom implementation for Clojure/ClojureScript leaning on Datomic datalog
https://github.com/totalperspective/oolon
Eclipse Public License 1.0
10 stars 0 forks source link

Interfaces #10

Closed bahulneel closed 8 years ago

bahulneel commented 8 years ago

From bud:

interface

Scratch collections, used as connection points between modules. Default attributes: [:key] => [:val]

interface input, :request interface output, :response

bahulneel commented 8 years ago

In Oolon:

(t/input ...)
(t/output ...)

The runtime should drop facts delivered (a/+fact) to an output table and similarly drop facts derived from rules with an input table in the head.

bahulneel commented 8 years ago

Modules should be able to import other modules via an :import section to the module specification. This, should have the effect of including the module in the agent. Multiple imports of the same module into an agent should result in only one instance of the imported module in the agent.

This could pose an issue for replies to requests leaving the output channel, as the output would be broadcast to all importers. This behaviour could be desired so should be allowed. It is therefore up to the module creator and consumer to handle the request/reply case by including a msg id, or similar.