by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 31 2019 19:32

    prolic on v1.10.3

    (compare)

  • Jan 31 2019 19:32

    prolic on master

    update changelog (compare)

  • Jan 31 2019 19:29
    prolic closed #176
  • Jan 31 2019 19:28
    prolic commented #186
  • Jan 31 2019 19:28
    prolic closed #186
  • Jan 31 2019 19:28

    prolic on master

    fix restarting projection durin… respect lock in memory resetting projection and 12 more (compare)

  • Jan 31 2019 16:26
    fritz-gerneth commented #189
  • Jan 31 2019 16:21
    prolic commented #189
  • Jan 31 2019 16:06
    sandrokeil commented #189
  • Jan 31 2019 15:31
    grzegorzstachniukalm synchronize #186
  • Jan 31 2019 15:23
    kamil-nawrotkiewicz edited #76
  • Jan 31 2019 15:22
    kamil-nawrotkiewicz edited #76
  • Jan 31 2019 15:22
    kamil-nawrotkiewicz opened #76
  • Jan 31 2019 15:19
    grzegorzstachniukalm synchronize #186
  • Jan 31 2019 15:09
    grzegorzstachniukalm synchronize #186
  • Jan 31 2019 13:54
    coveralls commented #186
  • Jan 31 2019 13:48
    mrook commented #189
  • Jan 31 2019 13:41
    prolic commented #189
  • Jan 31 2019 13:40
    prolic commented #189
  • Jan 31 2019 13:31
    fritz-gerneth commented #189
Sascha-Oliver Prolic
@prolic
:)
Florian Krämer
@burzum
Is the event-store-client going to get an update to ramsey/uuid v4? I think it should work with ^3.8|^4.0 as well?
Sascha-Oliver Prolic
@prolic
4.0 is buggy, sorry
doesn't work as of now
most important this issue: ramsey/uuid#314
if it doesn't get fixed, 4.0 won't be allowed in event-store-client
Florian Krämer
@burzum
OK thanks
freehostcomua
@freehostcomua_twitter

Hi.

I'm using eventbus and commandbus in my project. I encountered a strange thing. I have next chain: event1->command1->event2.1..event2.5
in event2.1 there is a command2. So this command run not rights after dispatch, it run only after all event2* will be completed. Is it possible to change the order and run the command2 when it was dispatched?

keywinf
@keywinf
I assume it would mean Depth-first Vs. Breadth-first tree traversal. Could be interesting stuff to study. I also wondered one day if transactional persisting could cover a complete chain event>command>event>... (as long as no async command or event breaks the chain).
Sascha-Oliver Prolic
@prolic
@freehostcomua_twitter that's intended by design. if you think you need to change that, it's more likely you have your chain of events misaligned.
Florian Krämer
@burzum

@prolic I think I fixed the HTTP Clients connection to match the interfaces.

It's amusing and sad that my work-mate cried instead of doing this 2 minute fix. But I think he hates the whole architecture anyway and this is just an expression of his opposition.

Sascha-Oliver Prolic
@prolic
lol, thanks @burzum
I hope I get to work on the http client a little soon, currently I have other priorities (tcp client and fpp)
Florian Krämer
@burzum
@prolic I figured out that there was more and going to keep fixing it. I also don't know why he used the HTTP client, I'm using the TCP client. However, since I dropped my open source commitment for CakePHP I'm looking for something better and more interesting to contribute to anyway. :)

I have just one problem with the tests, I'm getting

Prooph\EventStore\Exception\RuntimeException: Environment settings for event store connection not found

But shouldn't this be configured and set up through the phpunit config? I see the <env> elements in ther.e

this should return you the config from phpunit.xml.dist file
unless you overwrote it with a custom phpunit.xml file
Florian Krämer
@burzum
@prolic no, I haven't overriden it but the keys it checks are empty for whatever reason. Maybe a windows specific issue?
Sascha-Oliver Prolic
@prolic
oh, you use windows?
I don't know, sorry, I thought windows is for gaming only
however, you can hack in there and put the configuration manually here, just revert this before committing
Florian Krämer
@burzum

@prolic I'm doing photography as well (Lightroom & Photoshop) and play some games. Technically I'm able to use Linux but I don't like it. I'm lazy and I don't have any trouble with windows. Usually I have more trouble with Linux than Windows. I never figured out why the damn MySQL service on Cent OS 6 randomly crashed at least every 4-5 weeks. No logs, nothing. So I ended up simply restarting it every 2 weeks because I didn't wanted to waste more of my free time with it. :)

I'm going to continue with the HTTP client fixes as I find the time to do so. This is going to be a busy week at work and private as well.

Sascha-Oliver Prolic
@prolic
thanks, I'm working on a super crazy bug right now, that doesn't make any sense at all
function a calls function b that calls function c => a get called 5 times... so I would expect b to get called 5 times as well. and it does, as long as I don't call c. as soon as I call c, b get's only called 3 times, although a still gets called 5 times
some super crazy wizardry is going on
Florian Krämer
@burzum
@prolic are there generators involved? I read something about a bug in php 7.4.6, that you should avoid if you're using generators.
AbelardoLG
@abelardolg
Hi there
I have found at your documentation the concept of "aggregates"; so, I'd like to know where could I find an explanation with several basic examples about this concept you mentioned.
Florian Krämer
@burzum
@abelardolg an aggregate is simply an object that represents the state of something. Changes to the object get recorded as events. When restoring the state of an object the event history gets replied or a snapshot restored.
AbelardoLG
@abelardolg
Thanks @burzum : I heard an aggregate is a compound object (for example, Post + comments) and it contains a root (AggregateRoot); I'm not sure if we are talking about same concept here.
Florian Krämer
@burzum
Thats correct.
Sascha-Oliver Prolic
@prolic
@abelardolg aggregate root !== entity in orm
A DDD aggregate is a cluster of domain objects that can be treated as a single unit
AbelardoLG
@abelardolg
Yes, it can contain VO and other type of objects in order to be processed in a single transaction.
@burzum I could isolate the problem here: phunkie/phunkie#21
Sascha-Oliver Prolic
@prolic
I lost several hours yesterday because of that
Sascha-Oliver Prolic
@prolic
hey guys, one question for FPP, what do you think of this syntax?
event UserEvent = UserRegistered as "user-registered" { UserId $userId, Name $name }
        | UserNameUpdated as 'user-name-updated' { UserId $userId, Name $name }
        | UserDeleted { UserId $userId };
Sascha-Oliver Prolic
@prolic
@codeliner ?
Alexander Miertsch
@codeliner
@prolic What's the purpose of the alias: as "user-registered"?
Is it meant to be the event name?
Sascha-Oliver Prolic
@prolic
yes
Sascha-Oliver Prolic
@prolic
FPP (https://github.com/prolic/fpp/) has now removed ImmMap / ImmList almost everywhere from the code (coming from the phunkie-lib)) - performance of parsing 15 lines FPP went down from 3s to <0.01 sec !!!
Although the code looks now not as nice, it's required!
Further cleanup needed, but that bummer is out of the way: Tomorrow I try to finish command and event parsing. Since I didn't get any feedback on the syntax, that's what you have to live with then :)

btw: I removed all derivings! It adds too much complexity and dedicated fpp types are easier to handle.

data UserId deriving (uuid) -> uudid UserId
data Color deriving (enum) -> enum Color

so the syntax is even shorter

all data types will have toArray / fromArray / equals implemented by default

thanks to composite-parsers implemented in this library, you can (relatively) easy implement your own parser for a custom fpp type:

mycustomtype Whatever = < put whatever crazy syntax you like here >;

is now totally possible, and it should be doable for everyone

Sascha-Oliver Prolic
@prolic
by the way, fpp now has build-in support for reusing classes (either from php or its extensions itself or even userland code). All you have to do, is add your custom class to the configuration and provide the "toPhpValue" / "fromPhpValue" function, that will construct your object from an array or scalar value.
Some defaults (like DateTimeImmutable) will be baked in.