Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Darko Mijić
    @darko-mijic
    And are you cloning the develop branch?
    It is the default branch…
    Erick
    @ericklind
    I followed exactly what you listed above. Once I got to npm install mgp, I got that error.
    Darko Mijić
    @darko-mijic
    OK, so installation of mgp failed.
    Can you check your version of node? node -v
    Erick
    @ericklind
    1.2.23
    casperan
    @casperan
    @rhyslbw casperanderseneu@gmail.com slack channel? :)
    Darko Mijić
    @darko-mijic
    That is almost one year old node, I would try to upgrade
    Dominik Guzei
    @DominikGuzei
    @casperan i sent you the slack invite!
    casperan
    @casperan
    cheers
    Barry Low
    @bearcanrun
    Greetings, I would love to join the slack channel too: bearcanrun@gmail.com. Got the todo sample app up and running just fine and really like the structure you guys have going. Learning the event sourcing/CQRS has changed my life. Now that the Meteor 1.3 beta is actually useable in the past few days, I'm curious how the move to that future will be like. Cheers!
    Rhys Bartels-Waller
    @rhyslbw
    Hi @bearcanrun, invite sent. See you over there!
    Darko Mijić
    @darko-mijic
    Space developers are needed on a new and exiting project for a UK company. If you are interested PM me for details.
    eoliphan
    @eoliphan

    Hi, I'm looking to "gradually" incorporate some of the meteor-space cqrs/eventsourcing stuff you guys have. My current need is pretty light on business logic, but more on the side of needing to update multiple collections (projections) based on something happening. I've been looking at the test_application.coffee and unit tests. It seems realtively straightforward, but one thing that isn't clear to me is how to handle aggregate initialization. It's probably due to other frameworks I've used (e.g. Axon for Java). So just to be clear, to send a command to MyAggregate(id:123). I first need to create a new instance of MyAggregate (using the id), then call .handle(command)?

    It's just a little confusing to me, as say Axon,node-cqrs, basically have you just register all your aggregates, then send your commands to a gateway/handler, that then is responsible for routing, instantiation, etc.

    As this is an existing app, I can't quite leverage all the cool features you guys seem to have in your full stack. So for now I just need to send commands from my existing code.

    Darko Mijić
    @darko-mijic

    @eoliphan: Hi :)
    One instance of the Space.eventSourcing.Router is routing domain commands to all aggregate instances of the some type. For example this is the router that is routing command to instances of Todos.TodoList aggregate:
    https://github.com/meteor-space/todos/blob/master/packages/domain/source/server/todos/todo-router.js#l3

    Router has specialinitializingMessage attribute and that is the command that instantiates new instances of the aggregate:
    https://github.com/meteor-space/todos/blob/master/packages/domain/source/server/todos/todo-router.js#l5

    Other commands that are routed to the aggregate instances are defined in routeCommands array:
    https://github.com/meteor-space/todos/blob/master/packages/domain/source/server/todos/todo-router.js#l7-l13

    Please feel free to ask more questions if you have them. Also take a look at this sample app, it can help you understand how everything is wired up:
    https://github.com/meteor-space/todos

    This diagram can serve as a cheat sheet for understanding complete, non distributed Space event sourcing infrastructure:
    https://raw.githubusercontent.com/meteor-space/todos/master/docs/images/todos-model.png

    eoliphan
    @eoliphan
    Ahh, ok so from my previous example, the gateway is your 'router'. I need to tell it which commands it handles for which aggregate (JS needs annotations lol) So.. As I mentioned I'm kinda gradually baking this in. So once I've my events, commands, aggregate and router configured, I invoke a 'handle' or something on an instance of the router?
    Ok I guess I should have looked at your pic first lol. So the 'api' fronts the router.. I'll check that out
    But I think I understand better now. Have you guys considered any auto-wiring type stuff. As I mentioned the Axon framework uses Java annotations. I've done some small stuff with node-cqrs, they use naming conventions and the directory structure. Not sure how to do something similar in Meteor
    Darko Mijić
    @darko-mijic
    Rhys Bartels-Waller
    @rhyslbw
    Hey @eoliphan great to see you're checking out the Space ES tools :smile: we coordinate development and provide further assistance where possible in a Slack room, so pm me an email address if you're wanting to take this further. We're 100% committed to providing a solid set of tools for implementing ES/CQRS/DDD in Meteor, and have a growing list of contributors and applications being developed. Would be very helpful to have your input
    eoliphan
    @eoliphan
    @rhyslbw i'd love to. Hey how do I PM you?
    Rhys Bartels-Waller
    @rhyslbw
    @eoliphan click on a profile picture, choose Chat Privately
    fxv
    @fxv
    Hi,
    I see that the space:testing package has a dependency practicalmeteor:munit and reading the Space docs, it says Space currently only supports testing of package code and recommends this approach.
    I want to start exploring Space for a new project and I'm wondering how to use Meteor 1.3 with Space and testing. I'm just getting started exploring possible options, but if you can share any insights I'd really appreciate it.
    Dominik Guzei
    @DominikGuzei

    Hey @fxv, you can use space:testing with Meteor 1.3 in the same way as with package testing ;)
    Please checkout the tests written for the Donations application to get a feeling for it: https://github.com/meteor-space/donations/tree/develop/packages/domain/tests (these are package-tests but it works the same way)

    So just include

    space:testing
    space:testing-messaging
    space:testing-event-sourcing

    in your .meteor/packages file and start testing your event-sourced domain logic in *.app-test-jsfiles

    fxv
    @fxv
    @DominikGuzei thank you and to all the space team. Diving right in.
    Dominik Guzei
    @DominikGuzei
    You're welcome @fxv, feel free to ask more questions anytime.
    Pugio
    @Pugio
    Hello, I'm trying to figure out if the meteor-space projects are still active/maintained. I see that a lot of the latest commits were in March and I'd like to ensure that the project is still updating (e.g. compatibility and integration with latest versions of meteor) before I start using it in a new project.
    Rhys Bartels-Waller
    @rhyslbw
    Hi @Pugio ! Yes Space is active, the core libs are just stable and we’ve been waiting for the dust to settle on the latest changes before planning our next dev cycle. We’re using it with 1.3x, and will likely be moving to exporting ES6 modules over the global Space namespace. Which packages are you interested in using? Also if you send me a DM here I can invite you to our Slack which is where the core team is most days and are always happy to help out
    *instead of relying on the single Space global
    Pugio
    @Pugio
    Got it. I was looking into using event sourcing on my next app – I'd like a full history of everything, and the notion of making time a first class entity in my domain appeals to me.
    I'll send you a DM as soon as I start work on the project, which should be soon – right now is tech research phase.
    Thank you
    Rhys Bartels-Waller
    @rhyslbw
    Perfect, no worries. ES is critical for our own projects so it’s getting the most attention
    events as state is a huge win
    Pugio
    @Pugio
    agree completely. Glad to know it's alive and well.
    Rhys Bartels-Waller
    @rhyslbw
    @darko-mijic is working on a projection rebuilding example, currently the work is in the feature/ui branch: https://github.com/meteor-space/projection-rebuilding-example/tree/feature/ui/source/imports/ui
    This will show a modern implementation
    Jeff Harris
    @tunurgitr
    I think I read somewhere that some of the stuff is changing from coffeescript to ES6 -- any updates/status on that?
    (I'm new to this library and meteor in general, but I've done some DDD/CQRS/ES w/ C#)
    Rhys Bartels-Waller
    @rhyslbw
    Hi @tunurgitr Sorry for the late reply. Shoot me your email in a private message here and I’ll add you to the Slack room. This is where we hang out
    There’s no requirement to use CS when implementation Space libs. If the issue is importing specific modules then Meteor 1.4.2 (thanks @darko-mijic for the heads up) updates the CS package to include ES2015 module support so we are now free to refactor the package exports to be more modular
    Jeff Harris
    @tunurgitr
    gotcha, thanks
    Adam Dawkins
    @adamdawkins
    Reading about CQRS for Meteor here, I couldn't help but think of Apollo and GraphQL in particular, with queries and mutations for read / write actions respectively, it migth be a natural fit, and also lend itself nicely to early modelling, seeing as you can model value objects quite easily there?
    Basheer A Radman
    @ba2015sheer_twitter
    Domain Driven design for space applications
    Dominik Guzei
    @DominikGuzei
    @adamdawkins yeah it's definitely an interesting combination! You can use CQRS with any setup as it just means separating the logic for reading / writing. GraphQL is definitely an interesting approach for the read side. As i haven't tried it yet, im not sure about the write side though … usually you try to avoid direct mutations in domain driven design (write side). But i guess instead of applying modifications you could save events instead, which can then be processed to generate the read model in the database.