Hey @withinboredom. No but the latest space:messaging includes a basic custom queue using Mongo. It’s undocumented right now but check this commit for changes and tests CodeAdventure/space-messaging@aa286c7
It’s brand new and I’ll be starting an implementation using it later today
The project @DominikGuzei and I are working on uses meteor apps and a node microservice too. The meteor-space apps are inpendant but have integration points, which is why we feel it would be a natural fit for space-messaging to provide a lightweight distributed solution.
We’re using https://github.com/vsivsi/meteor-job-collection as it’s much more powerful and is built to suit to exact purpose of running node workers. I did look at meteor-workers when doing reasearch a while back, but I heard Ry Walker of Differential discuss the project on a podcast, and he mentioned it was practically abandoned. Job Collection on the other hand is one of the most solid projects on the other hand, being actively developed, well maintained documentation, a comprehensive test suite, and support from the author.
# Somewhere on client
Space.messaging.Api.call MyCommand
class @MyApi extends Space.messaging.Api
@method MyCommand, (context, command) ->
@commandBus.send command
class @MyAggregateHandler extends Space.messaging.Controller
Dependencies:
repository: ‘Space.cqrs.Repository’
...
@handle MyCommand, (command) ->
aggregate = @repository.find MyAggregate, command.aggregateId
aggregate.doSomething(command)
@repository.save aggregate
space-cqrs
is not a good fit for the ORM based orionjs solution anyway. But we sparked the idea of building a good example application that shows the concepts and benefits of DDD / CQRS with space-cqrs
orders
and payments
) that could be dropped into your application and configured. This would provide great examples of how to model a self-contained bounded context and possibly draw more attention to space (get more devs on board).
orders
and payments
BCs: https://github.com/SpaceJs/cqrs-shop-example
package.js
is programmable in Meteor we can use environment vars to include only those value objects that are needed by modules / apps.