Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 02:00

    sean-gilliam on sean-gilliam-patch-1

    (compare)

  • 01:58

    sean-gilliam on sean-gilliam-patch-1

    Update akkadotnet-v1.4.md Fix … (compare)

  • Feb 28 21:04

    Aaronontheweb on 1.4.1-rc1

    (compare)

  • Feb 28 21:02
    Aaronontheweb closed #4282
  • Feb 28 20:54
    Aaronontheweb opened #4282
  • Feb 28 20:54

    Aaronontheweb on dev

    added Akka.NET v1.4.1-rc1 relea… (compare)

  • Feb 28 20:54
    Aaronontheweb closed #4281
  • Feb 28 20:50
    Aaronontheweb opened #4281
  • Feb 28 20:21
    Aaronontheweb synchronize #4270
  • Feb 28 20:20

    Aaronontheweb on dev

    v1.4.0 migration guide (#4280) … (compare)

  • Feb 28 20:20
    Aaronontheweb closed #4280
  • Feb 28 20:20
    Aaronontheweb closed #4279
  • Feb 28 20:20
    Aaronontheweb closed #4277
  • Feb 28 20:14
    Aaronontheweb ready_for_review #4280
  • Feb 28 20:14
    Aaronontheweb edited #4280
  • Feb 28 20:14
    Aaronontheweb synchronize #4280
  • Feb 28 20:07
    Aaronontheweb synchronize #4280
  • Feb 28 19:35
    Aaronontheweb synchronize #4280
  • Feb 28 18:28
    Aaronontheweb edited #4280
  • Feb 28 18:27
    Aaronontheweb commented #4280
Ondrej Pialek
@ondrejpialek
@OnurGumus probably best to submit an isssue to the GitHub repo page with steps to reproduce?
Bartosz Sypytkowski
@Horusiath
@OnurGumus this sounds like a serious issue
Onur Gumus
@OnurGumus
@Horusiath I think this is by design.
There is an internal interface : ISupportSerializationConfigReload
Bartosz Sypytkowski
@Horusiath
"broken by design" ;)
Onur Gumus
@OnurGumus
When ever you create a new persistence actor instance (not sure if always perhaps once per type), that ctor triggers this.
this in turn calls the private method of ActorSystemImpl
private void ConfigureSerialization()
{
    this._serialization = new Serialization(this);
}
so if somehow you customized your serializer programmatically , you lose the changes.
this is not an oversight and done deliberately but not sure if I understand the motivation
Bartosz Sypytkowski
@Horusiath
if I remember correctly, the problem was that in the past a Persistence plugin might have not been created (+ actor system not configured to use persistence) when you were creating a persistent actor for the first time
nonetheless config reload on every new actor sounds like serious issue
Onur Gumus
@OnurGumus
it has to do with persistence extensions. I have collected the full stack trace but not with me now
zbynek001
@zbynek001
@OnurGumus I've added that ISupportSerializationConfigReload interface. It's called only inside InjectTopLevelFallback, so is something maybe calling that too often?
Onur Gumus
@OnurGumus
@zbynek001 I think it is called first from this.<Extension>k__BackingField = Persistence.Instance.Apply(ActorBase.Context.System); in EventSourced.ctor
that in turn calls .RegisterExtension(this));
And that calls extension.CreateExtension(this)));
and that calls public PersistenceExtension(ExtendedActorSystem system)
{
this._system = system;
this._system.Settings.InjectTopLevelFallback(Persistence.DefaultConfig());
So it is triggered from EventSource.ctor
Bartosz Sypytkowski
@Horusiath
@OnurGumus I've checked calling multiple persistent actors of multiple different types - serializers are created twice: once on actor system creation, then when Persistence plugin applies for first time. This works as designed, since plugins can introduce their own serializers at runtime and trigger actor system to recreate them
you can poke actor system to explicitly initialize all requested plugins right on the start from configuration
Onur Gumus
@OnurGumus
how do I do that
zbynek001
@zbynek001
@OnurGumus .RegisterExtension is caching the extensions, so CreateExtension will be called only once per type
Onur Gumus
@OnurGumus
@zbynek001 I concur
but I find this behavior surprising
Bartosz Sypytkowski
@Horusiath
akka {
  extensions = [ "Akka.Persistence.Persistence, Akka.Persistence" ]
}
Tbh I'll definitelly want to change this part in the future, once we'll introduce native dependency injection support
Onur Gumus
@OnurGumus
Come to think of it, after actor creation you change your serializer settings and boom, it's gone suddently
took me few hours to find it out.
Bartosz Sypytkowski
@Horusiath
@OnurGumus in most of the new frameworks you can encounter runtime configuration reloads - even Microsoft.Extensions.Configuration has reload tokens defined as part of the API
Onur Gumus
@OnurGumus
Perhaps...
goti2
@goti2
Hi everyone, how to use ask method in xamarin.forms
Maciek Misztal
@mmisztal1980
Hey all, is there a code sample or tutorial on Akka.Cluster.Sharding?
Ondrej Pialek
@ondrejpialek
@Horusiath is writing one... :)
Maciek Misztal
@mmisztal1980
cheers
Kento
@robinsondotnet
Is it possible to use Cluster or distributedData using Akka.TestKit?
I always get "Object reference not set to an instance of an object" when "DistributedPubSub.Get(Context.System).Mediator;" or "Cluster.Get(Context.System);" is being executed inside Actor's behavior.
Bartosz Sypytkowski
@Horusiath
@robinsondotnet have you configured your test to work with cluster? (akka.actor.provider = cluster)
also, for cluster/ddata you probably should use multi node test kit
Kento
@robinsondotnet
@Horusiath Should I use the app.config file for testkit or configure it with this.Sys.Settings.Config.WithFallback()?
The ActorSystem is provided by the TestKit, right?
Bartosz Sypytkowski
@Horusiath
you can pass config into TestKit constructor
Kento
@robinsondotnet
nice. thank you @Horusiath
goti2
@goti2
Guys, tell me please how to use akka.net remote in Xamarin forms, and does it have a sense?
Maciek Misztal
@mmisztal1980
Another question: can anyone explain how should I work with the PersistentFSM ? this example: https://github.com/akkadotnet/akka.net/blob/a478c5e8c8d5de97dcf7bcea7e2a80fbaa5e6cc8/docs/examples/DocsExamples/Persistence/WebStoreCustomerFSMActor.cs suggests that I do not need to call Persist, nor do I need to call Recover, does this mean that PersistentFSM is capable of recovering its state on its own?
Bartosz Sypytkowski
@Horusiath
@mmisztal1980 PersistentFSM stores events as part of the Applying definition. Recovery/state-update happens as defined in your ApplyEvent override.
Ondrej Pialek
@ondrejpialek
So I wonder - if I debug my app do all the timeouts still... timeout? :) I see my cluster breaks if I debug for too long and then goes up again after debugger is resumed. What about message timeout in inbox, asks etc?
What is the development scenario here - have a dev config with the timeouts in minutes?
Onur Gumus
@OnurGumus
In event sourcing, I am seeing my states are also being persisted besides the events. Is this expected ?
And how does journal reader treat them in that case ?