Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Rob Landers
    @withinboredom
    I'd love to help with documenting various components, would help me learn it and benefit everyone.
    Rhys Bartels-Waller
    @rhyslbw
    Documentation is a bit thin, but test coverage not, so that’s the best way to understand it right now
    But yes documentation is the biggest limiting factor for attracting new people to the project IMO
    We discussed the best way is to focus documentation here: https://github.com/CodeAdventure/meteor-space/blob/master/README.md, then link out to more detailed docs for the sub-projects
    Rhys Bartels-Waller
    @rhyslbw
    …and as you can see there’s no content on messaging there yet
    Rhys Bartels-Waller
    @rhyslbw
    the functionality was actually first part of the cqrs package, but since it’s not specific to that and is used by space-ui, was broken out. This seems to indicate why it wasn’t included in the main docs, but is very much a natural fit with the other intro content
    Rob Landers
    @withinboredom
    May be helpful to use the full stack in a "todo" app or something.
    Rob Landers
    @withinboredom
    best quote ever: If you don't use some structure, you will end up throwing your laptop against the wall. btw
    Rhys Bartels-Waller
    @rhyslbw
    yes haha, been there
    The example is a but out of date with current thinking though. It still uses mediators whereas we’re now using Blaze Components instead
    The Todo app is also not complex enough to demonstrate the cqrs package capabilities, so we really need to put togethe an example from a more complex domain
    Rhys Bartels-Waller
    @rhyslbw
    That example could include the distributed messaging capabilities
    Rhys Bartels-Waller
    @rhyslbw
    To clarifty the example I posted, in a CQRS app you would want to be passing a command to the commandBus instead of updating the collection here. The command is constructed on the client and passed as a serialsed, type-checked object. A handler in the domain layer handles the command, loading up the aggregate, and calling it’s method.
    # 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
    Dominik Guzei
    @DominikGuzei
    Hey @withinboredom, welcome – sorry for the silence, was hooked up with a lot of different work lately ;-)
    space-messaging is very badly documented at the moment, but i will be putting something together asap! For starters you can also take a look at two of my blog posts that cover a bit of the ground and philosophy behind the whole space framework:
    Dominik Guzei
    @DominikGuzei
    Hey everyone, we move our private discussion about space/orionjs integration here because we figured that space-cqrsis 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
    Also we discussed the value of "general" purpose space modules (like 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).
    Dominik Guzei
    @DominikGuzei
    I setup the basic structure for an example shop app that could showcase how to configure and use the ordersand paymentsBCs: https://github.com/SpaceJs/cqrs-shop-example
    Dominik Guzei
    @DominikGuzei
    And i will also sponsor some of the value objects that i modeled in my Prisma application. I think a general purpose, configurable value object repository would be really amazing for the community. Since package.js is programmable in Meteor we can use environment vars to include only those value objects that are needed by modules / apps.
    Dominik Guzei
    @DominikGuzei
    I started the value objects repository project here: https://github.com/SpaceJs/value-objects
    I really like the approach of configurable file inclusions! Works like charm with Meteor :-)
    Timothy
    @timfam
    Awesomeness!
    Timothy
    @timfam
    Long holiday weekend here :).
    Dominik Guzei
    @DominikGuzei
    Hehe, no worries – I will work over the weekend and start setting up all the things. Really looking forward to your feedback(s) and to see this project taking shape :-)
    Timothy
    @timfam
    Me too
    Ryan Watts
    @rwatts3
    Hey gentleman. Yes I too am enjoying these 3 days off phew !!
    Dominik Guzei
    @DominikGuzei
    Hey @rwatts3, and that's exactly what you should do :-)
    What are you working on currently?
    Ryan Watts
    @rwatts3
    Haha. I'm finishing up a client call on a cold fusion system.
    Dominik Guzei
    @DominikGuzei
    hehe, good old legacy :-D
    Ryan Watts
    @rwatts3
    Yep, sometimes it's bitter sweet
    Dominik Guzei
    @DominikGuzei
    But it is CQRS related?
    Ryan Watts
    @rwatts3
    yes and no
    Rhys Bartels-Waller
    @rhyslbw
    Good to see some new devs in here, welcome!
    Dominik Guzei
    @DominikGuzei
    Continued to work on the space-cqrs example app, fleshed out a basic UI using semantic-ui for showing the products of the shop ;-) https://github.com/SpaceJs/cqrs-shop-example/tree/develop
    you have to symlink the https://github.com/SpaceJs/value-objects into the packages folder atm and make a copy of the environment.example.sh to environment.sh. Then run the app via the ./run.sh shell script.
    it already uses three of the general purpose value objects and only loads those that are configured via the environment.shfile :-)
    Bildschirmfoto 2015-09-06 um 02.24.02.png
    Rhys Bartels-Waller
    @rhyslbw
    Hey Dominik, the new ideas around a repository of components is exciting. I’ve just reviewed space:value-objects, great start. I do wonder though if we are best keeping each one in it’s own package. Seems like we are misusing ENV variables for application reliant configuration?
    Rhys Bartels-Waller
    @rhyslbw
    Pros:
    1. No need to learn a new dev process since we would be using the starndard tools.
    2. Anyone can add Value Objects by writing a new package and realeasing to Atmosphere. We can review and maintain a directory of packages in the Space docs.
    3. Only the code required by the app is pulled into a project.
    Rhys Bartels-Waller
    @rhyslbw
    We could create a style guide for VO and Module packages, and even produce a template repository to show the structure and boilerplate testing code
    rhyslbw:space-vo-foo
    rhyslbw:space-module-orders
    Dominik Guzei
    @DominikGuzei
    Hey Rhys, thanks for the great feedback – you addressed many of the concerns i had in mind while building the repo ;-) Also I realized that often there are groups of value objects that belong together, so we could have mini-packages like space-vo-moneywhich provides Currency and MoneyVOs