chrisruffalo / achoo Goto Github PK
View Code? Open in Web Editor NEWachoo is a simple http based messaging system
achoo is a simple http based messaging system
Create a round-robin based queue implementation that allows multiple subscribers to receive messages in turn.
Multiple consumers may want to receive different messages for work-sharing or divide-and-conquer reasons.
When the unsubscribe api is hit (/unsubscribe/exchange/subscription) a PoisonPill is sent to the Sender actor on the given exchange.
This happens in function unsubscribe() on the ExchangeManager typed actor.
The following exception occurs when an Unsubscribe/PoisonPill is sent to the LAST actor on an exchange:
[ERROR] [08/07/2012 11:00:25.263] [achoo-akka.actor.default-dispatcher-5] [akka://achoo/user/achoo-exchange-manager/testexchange] error while processing Terminate()
d9a25693-f812-4024-9cd6-0d0eac6ed64eakka.actor.IllegalActorStateException: akka.routing.RoutedActorCell@1bfd9cd5 is not an Actor since it have not mixed in the 'Actor' trait
at akka.actor.ActorCell.lookupAndSetField$1(ActorCell.scala:452)
at akka.actor.ActorCell.setActorFields(ActorCell.scala:457)
at akka.actor.ActorCell.clearActorFields(ActorCell.scala:432)
at akka.actor.cell.FaultHandling$class.finishTerminate(FaultHandling.scala:153)
at akka.actor.cell.FaultHandling$class.terminate(FaultHandling.scala:114)
at akka.actor.ActorCell.terminate(ActorCell.scala:272)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:311)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:249)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:227)
at akka.dispatch.Mailbox.run(Mailbox.scala:208)
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:492)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
[WARN] [08/07/2012 11:00:25.269] [achoo-akka.actor.default-dispatcher-5] [akka://achoo/user/achoo-exchange-manager] dropping Failed(d9a25693-f812-4024-9cd6-0d0eac6ed64eakka.actor.IllegalActorStateException: akka.routing.RoutedActorCell@1bfd9cd5 is not an Actor since it have not mixed in the 'Actor' trait) from unknown child Actor[akka://achoo/user/achoo-exchange-manager/testexchange]
It is expected that no exception will occur and that the subscriber will be properly killed. If akka's default action is to close a router when it is empty... then that should happen as well.
The send message endpoint needs to properly consume the HTTP request and set it in the message body.
Sending a message with no contents is probably useless. We need to send messages with contents.
implement TCP subscribe endpoint
implement TCP Subscription
implement TCP Sender
It is difficult for a REST ONLY client (wget, curl, javascript, etc) to send a message to a TCP endpoint. This can bridge that gap.
implement HTTP subscribe endpoint
implement HTTP Subscription
implement HTTP Sender
This is primarily a rest based, http based, system so it stands to reason that it can forward messages to other HTTP/REST endpoints.
Implement an in-memory storage for messages sent to an on demand subscriber
implement a way for the REST endpoints to get that information from the subscriber mailbox
Not every subscriber can receive information directly and some must poll for updates instead of waiting for push/interrupt style messages.
implement TCP Multicast subscribe endpoint
implement TCP Multicast Subscription
implement TCP Multicast Sender
Where issue #5 addresses a difficult bridge, this one addresses a very complex one. This can turn Achoo into a multicast router across multiple networks.
See issue #5 for additional information.
Implement a broadcast topic
Multiple subscribers may want to subscribe to the same information source.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.