Generic remote-port adapter: implement any module protocol over HTTP.
Cross-module calls go through a protocol, so slicing a module into its own
process needs one thing the codebase did not have — an implementation of
that protocol that makes a network call. This builds one for an arbitrary
protocol, so the caller keeps calling (ports/create-checkout-session svc …)
and does not learn that the answer now comes over a socket (BOU-90).
Modelled on libs/external's outbound adapters: clj-http, :throw-exceptions false, errors as data rather than exceptions.
FC/IS: shell. The wire contract is pure and lives in
wagoe.platform.core.rpc.
Generic remote-port adapter: implement any module protocol over HTTP. Cross-module calls go through a protocol, so slicing a module into its own process needs one thing the codebase did not have — an implementation of that protocol that makes a network call. This builds one for an arbitrary protocol, so the caller keeps calling `(ports/create-checkout-session svc …)` and does not learn that the answer now comes over a socket (BOU-90). Modelled on libs/external's outbound adapters: clj-http, `:throw-exceptions false`, errors as data rather than exceptions. FC/IS: shell. The wire contract is pure and lives in `wagoe.platform.core.rpc`.
Expose a module's protocol over HTTP, so another process can call it.
The counterpart to …rpc.client: that turns protocol calls into requests,
this turns requests back into protocol calls against the local
implementation. Together they are what lets a module run as its own service
without its callers changing (BOU-90).
FC/IS: shell. The envelope contract is pure and lives in
wagoe.platform.core.rpc.
Expose a module's protocol over HTTP, so another process can call it. The counterpart to `…rpc.client`: that turns protocol calls into requests, this turns requests back into protocol calls against the local implementation. Together they are what lets a module run as its own service without its callers changing (BOU-90). FC/IS: shell. The envelope contract is pure and lives in `wagoe.platform.core.rpc`.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |