Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 29 2018 13:54

    pawelkaczor on master

    update deps (compare)

  • Apr 29 2018 09:05

    pawelkaczor on v1.7.8

    (compare)

  • Apr 29 2018 08:54

    pawelkaczor on master

    update akka, akka-http release version 1.7.8 (compare)

  • Apr 08 2018 10:20

    pawelkaczor on master

    fix Reject.recoveryWith (compare)

  • Mar 17 2018 17:33

    pawelkaczor on master

    #73 - improve (compare)

  • Mar 17 2018 17:10
    pawelkaczor closed #73
  • Mar 17 2018 17:10

    pawelkaczor on master

    fix #73 - periodically delete c… (compare)

  • Mar 17 2018 16:44

    pawelkaczor on docs

    minor (compare)

  • Mar 16 2018 08:36
    pawelkaczor labeled #73
  • Mar 16 2018 08:36
    pawelkaczor assigned #73
  • Mar 16 2018 08:36
    pawelkaczor opened #73
  • Mar 10 2018 13:47

    pawelkaczor on gh-pages

    updated site (compare)

  • Mar 10 2018 13:44

    pawelkaczor on docs

    Update Readme add Modules overview Merge branch 'master' into docs (compare)

  • Mar 10 2018 13:44

    pawelkaczor on gh-pages

    updated site (compare)

  • Mar 10 2018 13:40

    pawelkaczor on master

    Update Readme (compare)

  • Mar 10 2018 13:30

    pawelkaczor on gh-pages

    updated site (compare)

  • Mar 10 2018 13:29

    pawelkaczor on docs

    Update Readme Merge branch 'master' into docs (compare)

  • Mar 10 2018 13:29

    pawelkaczor on docs

    update project description (compare)

  • Mar 10 2018 13:28

    pawelkaczor on master

    Update Readme (compare)

  • Mar 10 2018 13:00

    pawelkaczor on gh-pages

    updated site (compare)

Andrey Ladniy
@AndreyLadniy
I try implement test for my thoughts.
Andrey Ladniy
@AndreyLadniy
Can be https://github.com/pawelkaczor/akka-ddd/blob/30e6985e9cba468668ef2290c2b5fc9d0bdf4f61/akka-ddd-core/src/main/scala/pl/newicom/dddd/delivery/AtLeastOnceDeliverySupport.scala#L81 the reason for stoping ReceptorActor?
Where is a supervisor for ReceptorActor? Is this a ActorFactory? There is no exception handler.
Paweł Kaczor
@pawelkaczor
before this exception is throw a message is logged, so you should know if this is the case
Andrey Ladniy
@AndreyLadniy
Yes error message is like from that place. I can not understand what happens with ReceprotActor after throw exception.
Paweł Kaczor
@pawelkaczor
so I would suggest you to fix the error first
Andrey Ladniy
@AndreyLadniy
I think error because of fast saving snapshots. But how understand real problem I don't know now yet.
Paweł Kaczor
@pawelkaczor
but you can increase snapshot interval
for testing
Andrey Ladniy
@AndreyLadniy
You talk about capacity?
Paweł Kaczor
@pawelkaczor
no
pl.newicom.dddd.process.Receptor#snapshottingConfig
Andrey Ladniy
@AndreyLadniy
ok. I understand (it equals to capacity by default)
with capacity= 10 and RegularSnapshottingConfig.interval = Int.MaxValue I have no errors...
Paweł Kaczor
@pawelkaczor
ok, so you can now try to decrease the interval :)
Paweł Kaczor
@pawelkaczor
@AndreyLadniy to improve performance of snapshotting you should get rid of java serialization
Andrey Ladniy
@AndreyLadniy

@pawelkaczor Hello can you explain definition of Behavior:

trait Behavior[E <: DomainEvent, S <: AggregateState[S], C <: Config] extends AggregateState[S] with BehaviorSupport[E]

as I understand correctly type S is sub type of AggregateState.
For example some object StateImpl extends AggregateState[StateImpl].
Why Behavior will extend AggregateState[StateImpl] not StateImpl?

Paweł Kaczor
@pawelkaczor
hi @AndreyLadniy
trait Behavior[E <: DomainEvent, S <: AggregateState[S], C <: Config] extends AggregateState[S] with BehaviorSupport[E]
so the question is why Behavior does not extend S
Andrey Ladniy
@AndreyLadniy
Yes
Paweł Kaczor
@pawelkaczor
and this is good question :)
well, I think this is how it needs to be, in order to compile

object StateImpl extends AggregateState[StateImpl]

you don

you need to extend from Behavior
sealed trait Dummy extends Behavior[DummyEvent, Dummy, DummyConfig]
Andrey Ladniy
@AndreyLadniy

well, I think this is how it needs to be, in order to compile

I think so too

because of there is no other things...
Paweł Kaczor
@pawelkaczor
it would mean that Behavior extends Dummy, which makes no sense
Andrey Ladniy
@AndreyLadniy
@pawelkaczor Hello, I have one question abount Deduplication in AR.
I can't find where an AR store processed command id (where call for ids + id happens).
private lazy val sm = new StateManager(onStateChanged = messageProcessed)
Andrey Ladniy
@AndreyLadniy
thanks
Andrey Ladniy
@AndreyLadniy
@pawelkaczor Hello, what is a reason in storing events in memory for receptor? This memory will never be released befor app restart and the main part is a snapshot? This used only for actor restart while app working? But when receptor can be stopped/restarted, only on actor crash?
Paweł Kaczor
@pawelkaczor

This memory will never be released

Yes, I'm aware of this. Another journal implementation should be used (that automatically deletes old events) or we need to delete events periodically.

what is a reason in storing events in memory for receptor?

Because we don't need to store these events in persistent journal.

Andrey Ladniy
@AndreyLadniy
I try ask about storing (regardless of the journal type)
Paweł Kaczor
@pawelkaczor
ok, we store the event so that it can be delivered reliably to the destination
and efficiently (with back-pressure, because we know how many events are waiting for confirmation)
you can create a ticket (Receptor - confirmed events should be released from the memory)
Paweł Kaczor
@pawelkaczor
@AndreyLadniy how Lagom compares to akka-ddd? :)
Andrey Ladniy
@AndreyLadniy
This is an another design. akka-ddd and lagom is a different things. Lagom is a microservice framework with cqrs part included. akka-ddd has a much tuned abstractions. I try compare they on the same bussiness entities, but I can't say now pros and cons, but I think I will have thoughts in close time.
Paweł Kaczor
@pawelkaczor
ok
Andrey Ladniy
@AndreyLadniy
But now I know: ES is fine for push events to app, cassandra (as a default database in Lagom) uses polling, and with default setting my PM works slow (fast process and big time lag between polling next part of data)
Paweł Kaczor
@pawelkaczor
right, I saw people complaining about read-side latency in Lagom: https://discuss.lightbend.com/t/read-side-latency-and-responsivness/237
Andrey Ladniy
@AndreyLadniy
There are more some "surprises" because of strong type checks. Now I have a problem with multi streams read-side processing
Andrey Ladniy
@AndreyLadniy
If read-side is a some denormalized state, it may content data from different entity streams. So how can be such states filled if ReadSideProcessor process one event type only?
Paweł Kaczor
@pawelkaczor
hmm, I guess it should be possible somehow
Andrey Ladniy
@AndreyLadniy
Sorry... It'is for Lagom chat :-)
One of 'surprises'
Paweł Kaczor
@pawelkaczor
yes, I know you meant Lagom