Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Vaughn Vernon
    @VaughnVernon
    @kmruiz ^^^
    @sharmapankaj2512 Do you mind if I tweet your example?
    Pankaj Sharma
    @sharmapankaj2512

    @sharmapankaj2512 Do you mind if I tweet your example?

    @VaughnVernon Not at all :-)

    Vaughn Vernon
    @VaughnVernon
    @sharmapankaj2512 What is your twitter account?
    Pankaj Sharma
    @sharmapankaj2512

    @sharmapankaj2512 What is your twitter account?

    Its @pps2512

    Vaughn Vernon
    @VaughnVernon
    @sharmapankaj2512 Tweeted, thanks!
    Kevin Mas Ruiz
    @kmruiz
    Hey, thanks for pinging me :D it took 1 day for gitter to send me an email
    the GraalVM native-image has some troubles detecting reflection (which makes sense as we do some dynamic reflection and class generation on runtime, and the GraalVM is not expected to support it right now)
    for vlingo to work with a native-image, you need to generate the proxies at compile time, with the vlingo-build plugin: https://github.com/kmruiz/vlingo-native-image-example/blob/master/pom.xml#L30
    this will generate a few proxy classes and the reflection.json that needs to be added to the graalvm image (in the Dockerfile there is an example on how to do that)
    Kevin Mas Ruiz
    @kmruiz
    the Dockerfile in that repo should be generic enough, just changing a few parameters should be enough to make it work (assuming there has been no breaking change in vlingo related to the proxy generation in the last few months :D): https://github.com/kmruiz/vlingo-native-image-example/blob/master/Dockerfile#L11
    Pankaj Sharma
    @sharmapankaj2512
    @kmruiz Thanks for the explanation. I was able to create a docker file referring to the file that you have shared.
    But as you mentioned the 'nativeActorProxyGen' is not able generate proxy for one of the overloads of actorFor.
    I have created a PR with the test data that makes a test in ProtocolScanner fail.
    vlingo/vlingo-build-plugins#8
    Vaughn Vernon
    @VaughnVernon
    @sharmapankaj2512 You can use an ActorInstantiator instead. There are many examples. See:
      @SuppressWarnings({"rawtypes", "unchecked"})
      private static class StateStoreEntryReaderInstantiator implements ActorInstantiator<InMemoryStateStoreEntryReaderActor> {
        private static final long serialVersionUID = 8463366612347915854L;
    
        final String name;
        final List<Entry<?>> entries;
    
        StateStoreEntryReaderInstantiator(final List<Entry<?>> entries, final String name) {
          this.entries = entries;
          this.name = name;
        }
    
        @Override
        public InMemoryStateStoreEntryReaderActor instantiate() {
          return new InMemoryStateStoreEntryReaderActor(entries, name);
        }
    
        @Override
        public Class<InMemoryStateStoreEntryReaderActor> type() {
          return InMemoryStateStoreEntryReaderActor.class;
        }
      }
    I know this does not fully address your issue, but it is best to greatly reduce the reasons to use reflection. The ActorInstantiator was designed specifically to accomplish that when using GraalVM.
    Pankaj Sharma
    @sharmapankaj2512
    @VaughnVernon Thanks, I think that will suffice. Shall I close the PR?
    Vaughn Vernon
    @VaughnVernon

    @sharmapankaj2512 The ProtocolScanner still needs work as @kmruiz noted in PR #8:

    https://github.com/vlingo/vlingo-build-plugins/pull/8#issuecomment-638012780

    Pankaj Sharma
    @sharmapankaj2512
    @VaughnVernon @kmruiz Thanks for the additional information, I will send a PR with fix shortly.
    Vaughn Vernon
    @VaughnVernon
    @sharmapankaj2512 Thanks!
    Gaurav
    @gaurav-

    Hello! I've been searching for a framework/toolkit to help implement DDD (with possibly event sourcing) for a new product we're building. I stumbled upon Vlingo and was so pleasantly surprised to find that it promises everything that I was looking for, and more!

    We're a very small team in an early-stage startup. So my plan is to first build a modular monolith with well-defined boundaries that could later evolve into microservices.
    Is there any example project to demonstrate such an approach using Vlingo?

    15 replies
    Daniel Rodríguez Alcalá
    @danielhra
    Hey guys i've been trying to get the vlingo xoom starter running on my mac to no avail. i've followed the steps described in the readme, extracting the content and creating the environment variable yet it doesn't seem to be working, any ideas what could be missing?
    Vaughn Vernon
    @VaughnVernon
    @danielhra Sorry for the trouble. I have asked @danilo-ambrosio to reply but I think he is offline for the weekend. Some of the readme instructions may be a few days out of date, but I thought it was working. Do you have JDK 1.8 installed?
    Vaughn Vernon
    @VaughnVernon
    Daniel Rodríguez Alcalá
    @danielhra
    @VaughnVernon thanks for answering, i do have jdk 1.8 and the latests dist, if it is working properly it must be on my side then, i'll try debugging some more
    Danilo Ambrósio
    @danilo-ambrosio
    Hey @danielhra !
    Please let me know if you have any error message or failure evidence. I'm willing to help you with XOOM starter.
    At your disposal.
    Vaughn Vernon
    @VaughnVernon
    @danielhra Can you please give us an update on your situation? It seems like you must have gotten past the problem. /cc @danilo-ambrosio
    Yuri Sergiichuk
    @yuri-sergiichuk

    Hello guys!

    I'm totally new to the platform and trying to bootstrap smth working to be able to start from smth.
    As far as I understood, the best way is to proceed with the vlingo-xoom-starter, so I did. Unfortunately, the project the starter generated seems to be broken.

    For the generated Projection example, the projection actor is referencing some QueryModelStateStoreProvider, but such a class is not available in the generated project as well as it is not available (or I cannot find it) in any of the platform libraries.

    I'm using the latest available xoom version 1.3.4-SNAPSHOT.

    Above is the project generated by the starter.
    Vaughn Vernon
    @VaughnVernon
    @yuri-sergiichuk The snapshot should be good. There is currently an issue with code gen on Mac. If you are using Mac and can run a Windows VM, please try that. We should be releasing 1.4.0 golden soon.
    Yuri Sergiichuk
    @yuri-sergiichuk

    Hello @VaughnVernon. I'm on a Windows PC.

    I've tried running it both from cmd and from WSL2 Ubuntu 18.04, but, unfortunately, for me the result is the same.

    I may be missing smth, so will try once again from scratch tomorrow.
    Vaughn Vernon
    @VaughnVernon
    Are you running from the pre-built executable?
    Yuri Sergiichuk
    @yuri-sergiichuk
    Yes
    I downloaded one through curl as noted in the README and use xoom.bat gui to run the starter.
    Vaughn Vernon
    @VaughnVernon
    I am not sure of the status of that executable as of today. There were bug fixes today but there may have been some regression. Let me check with @danilo-ambrosio about it.
    Danilo Ambrósio
    @danilo-ambrosio
    Hello @yuri-sergiichuk
    I'l try to help you on missing class scenario. Please tell me, have you generated a project using XOOM annotations? In case yor your project uses annotation, QueryModelStateStoreProvider will be generated at compile-time as soon as you compile your project. Could you try it?
    Please let me know if it succeeds
    Danilo Ambrósio
    @danilo-ambrosio
    Count on me if you spot something unclear
    Vaughn Vernon
    @VaughnVernon
    @yuri-sergiichuk I overlooked the possibility that you are using annotations. Our annotations are all generated, resolved, and wired at compile-time. So right after you generate you will have some classes that don't exist. You must build so that those will be generated.
    Yuri Sergiichuk
    @yuri-sergiichuk

    @danilo-ambrosio @VaughnVernon thx for looking into this.

    I indeed used annotations and looks like the compilation fails with some unpredictable results.

    @danilo-ambrosio, I created this repository https://github.com/yuri-sergiichuk/xoom-examples with detailed steps that describe what and how I tried to configure.

    I tried generating projects with both annotations enabled and disabled.

    In the repository, you'll find 2 folders with the results of the xoom-starter execution based on the configurations highlighted in the readme of the repository.
    Please let me know if I can do smth else to help you investigate the issue.
    Danilo Ambrósio
    @danilo-ambrosio
    @yuri-sergiichuk
    Thank you so much for sharing all those details. It helps me a lot to find an inconsistent behavior in the "aggregates" ui.
    I've forked your project and take a look at it. If you want to fix it yourself, just consider these few changes I made:
    https://github.com/yuri-sergiichuk/xoom-examples/compare/main...danilo-ambrosio:fix?expand=1
    We're currently working on the "aggregates" ui and let you know when we're done.
    Yuri Sergiichuk
    @yuri-sergiichuk
    @danilo-ambrosio thx for taking a look. I'd try to use your changes and compile the project.
    duncan-kiva
    @duncan-kiva
    Hi, I was curious if there is a timeline for adding GraphQL support. Thanks!
    Vaughn Vernon
    @VaughnVernon
    Hi @duncan-kiva How do you plan to use GraphQL with VLINGO? Is the idea for the query results from a GraphQL server to be auto-mapped into objects within an actor, such as an entity? It would be helpful to know what use case you consider applicable to our platform.