Commit Graph

81 Commits

Author SHA1 Message Date
Tony Garnock-Jones 1a764691e7 RacketMQ depends on the old Syndicate implementation, not the current one 2022-05-17 14:07:26 +02:00
Tony Garnock-Jones ac4f15325f The Big Spawn/Actor Swap 2017-02-20 17:32:22 -05:00
Tony Garnock-Jones eaa1806728 Fix deps 2016-12-01 15:00:24 +13:00
Tony Garnock-Jones 47547cdf21 pubsub -> websub 2016-11-28 09:17:08 +13:00
Tony Garnock-Jones 1951a285c8 `web-request-header-websocket-upgrade?` 2016-11-26 11:25:59 +13:00
Tony Garnock-Jones df6bd3eb2a Cope with renamed resource-path function 2016-11-26 09:54:40 +13:00
Tony Garnock-Jones 479faca644 web-redirect/temporary! -> web-redirect! 2016-11-23 15:39:25 +13:00
Tony Garnock-Jones 3b376315f4 web-redirect/temporary! 2016-11-23 15:32:57 +13:00
Tony Garnock-Jones 1eeb2ce59a syndicate/drivers/config 2016-11-23 13:49:46 +13:00
Tony Garnock-Jones a6058e05d6 New TODO 2016-11-23 10:56:49 +13:00
Tony Garnock-Jones 99e77f16d0 Note on caps 2016-11-22 17:03:14 +13:00
Tony Garnock-Jones a7d4e23124 Redirect / to /index.html 2016-11-22 16:44:00 +13:00
Tony Garnock-Jones 302f0d0c2d Document htdocs/ contents 2016-11-22 15:59:14 +13:00
Tony Garnock-Jones f1501c69a5 Document streaming WebSocket subscriptions 2016-11-22 15:55:26 +13:00
Tony Garnock-Jones e1c7ecd9a7 Update README and add TODO 2016-11-22 15:43:55 +13:00
Tony Garnock-Jones 2a9273142a Split out relay subscriptions from remote topics.
The previous code was trying to do too much with local dataflow. This
refactoring splits (stateful) relay upstream subscriptions out into
actors of their own.

Previously, dataflow variables were used to hold a single upstream hub
and a single upstream canonical topic URL. This causes problems when
things change rapidly: an unsubscription or subscription might be in
flight, and there was no way to tell what the resulting state of the
remote topic as a whole should be if the fields had changed between
the start and finish of an in flight action.

The new design follows from the observation that an individual
subscription to an upstream hub is a stateful entity: it deserves
promotion to a full actor. There is now an actor for the remote topic,
and one for each established upstream subscription. Upstream
subscriptions are created in response to demand expressed by the
remote topic actor; to switch, all it needs to do is update its
demand, and new subscriptions will spring into being while surplus
subscriptions gracefully terminate.

Also, this commit fixes a bug where upstream subscriptions were being
made to the requested-topic rather than to the upstream-topic.
Consequently, self-subscriptions (with multiple `http-listener`
aliases) work now without infinite mail loops.

There is still an issue that blocking actions in on-stop clauses don't
run to completion; that is being dealt with separately, as part of a
reexamination of facet-terminating events more generally.
2016-11-22 15:16:35 +13:00
Tony Garnock-Jones d2c161fd3e Remove layer of actor*, to avoid out-of-context field access; switch from 201 to 202 for posts 2016-11-22 13:32:32 +13:00
Tony Garnock-Jones 7dc47f53ff Distinct subscribers in poke.rkt 2016-11-22 13:32:08 +13:00
Tony Garnock-Jones 709042bb46 Convert the issued lease-seconds from string 2016-11-22 11:51:10 +13:00
Tony Garnock-Jones f14e0acfcb Reinterpret canonical-local-host -> canonical-baseurl.
In order to support HTTPS nginx proxying, we need to maintain a
"fictional" baseurl which is not directly connected to this server's
listen ports. This has caused a change to configuration: now, a
baseurl is specified along with one or more listen specifications.
2016-11-22 11:35:39 +13:00
Tony Garnock-Jones 1802a36ce3 Precompile bytecode on pushes for faster startup 2016-11-22 11:20:48 +13:00
Tony Garnock-Jones 8cee89f6a7 Fix signatures 2016-11-22 10:15:18 +13:00
Tony Garnock-Jones 1cfd5cce0d log-info instead of printf 2016-11-22 10:15:01 +13:00
Tony Garnock-Jones eef6c8c4b7 More logging for remote topics 2016-11-22 10:09:07 +13:00
Tony Garnock-Jones 51088343c4 Fixes and improvements toward proper upstream subscriptions 2016-11-22 10:04:07 +13:00
Tony Garnock-Jones 79e8d87e5f Terminate a websocket subscription when the websocket closes 2016-11-21 17:46:56 +13:00
Tony Garnock-Jones 01d8ba9456 Unsubscribe when interest in a remote topic goes away 2016-11-21 17:46:45 +13:00
Tony Garnock-Jones 2fa3f13c9b More logging 2016-11-21 17:46:32 +13:00
Tony Garnock-Jones 036916de7f Websocket-specific nginx configuration 2016-11-21 17:12:16 +13:00
Tony Garnock-Jones 6b4cb0b271 Simple websocket client 2016-11-21 17:05:43 +13:00
Tony Garnock-Jones a2c63ca007 Websocket subscription 2016-11-21 17:05:33 +13:00
Tony Garnock-Jones 27d57b2c52 Only poll upstream when some polling is desired 2016-11-21 17:05:17 +13:00
Tony Garnock-Jones f6cb3282bd Minor refactoring 2016-11-21 17:05:01 +13:00
Tony Garnock-Jones 165a35a471 Command-line argument -c --> -f 2016-11-21 17:04:44 +13:00
Tony Garnock-Jones 330721480f Finish conversion of poke.rkt to timestate 2016-11-21 14:40:25 +13:00
Tony Garnock-Jones c65fc0220c info.rkt updates, including racketmq launcher 2016-11-21 11:52:28 +13:00
Tony Garnock-Jones d83a87f0f4 Complain if no canonical-hosts are available 2016-11-21 11:51:38 +13:00
Tony Garnock-Jones f9f5e41c9d Improve README 2016-11-21 11:41:57 +13:00
Tony Garnock-Jones 5590c754c4 Update README 2016-11-21 11:24:54 +13:00
Tony Garnock-Jones 763d218927 Fix nginx SSL paths 2016-11-21 11:04:01 +13:00
Tony Garnock-Jones a5cdd5b12f Warn when too many canonical-host records exist 2016-11-21 10:55:06 +13:00
Tony Garnock-Jones 1c7b80606d Command-line configuration 2016-11-21 10:54:54 +13:00
Tony Garnock-Jones 29402dfc0b Warn when config file is missing 2016-11-21 10:54:07 +13:00
Tony Garnock-Jones 9f6a73a8b0 Split server.rkt into hub.rkt and hub/*.rkt 2016-11-21 10:13:40 +13:00
Tony Garnock-Jones 9b83f0f243 Comment defaults.rktd 2016-11-21 09:48:12 +13:00
Tony Garnock-Jones ae8209410d Templates 2016-11-21 09:09:05 +13:00
Tony Garnock-Jones 1f70e0e49f Split out config, protocol 2016-11-21 08:34:35 +13:00
Tony Garnock-Jones b27d28f364 Well, maybe error instead of warning. Sigh 2016-11-20 18:35:57 +13:00
Tony Garnock-Jones 75fbb51e66 Want warning and error in PLTSTDERR 2016-11-20 18:33:31 +13:00
Tony Garnock-Jones 62bd3c707b Get syndicate/drivers/web logging in run script 2016-11-20 18:19:09 +13:00