Activities of "mariovh"

  • ABP Framework version: v8.1.3
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes

Hello, I'm using AzureDistributedEventBus with inbox patter, for incoming Azure Service Bus Messages. While creating or updating an aggregate in a handler/synchronizer there's no entries created in audit tables AbpEntityChanges and AbpEntityPropertyChanges. How can I leave a trace in those tables when I insert or update the aggregate with a repository, taking into account that the change does not come from a request to the API but from a message received through Azure Service Bus?

Thank you

  • ABP Framework version: v8.1.3
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes

Hi Im working with Distributed Entity Eventy Bus and there are some events auto generated like, UserEto,IdentityRoleEto,IdentityUserEmailChangedEto are configured to automatically publish the events. I want to disable all configured events that automatically publish events, in order to publish manually with AddDistributedEvent(). I tried with module configuration but it doesnt work Configure<AbpDistributedEntityEventOptions>(options => { options.AutoEventSelectors.Clear(); });

Thank you

ABP Framework version: v7.4.4 UI Type: Blazor WASM Database System: EF Core (SQL Server)

Hi, Im using Abp AzureDistributedEventBus, with outbox and inbox pattern, and i need to update IncomingEventInfo ExtraProperties when I MarkAsProcessedAsync. Here is my code:

internal async Task IncomingEventInfoMarkAsProcessed(IncomingEventInfo incomingEvent, InboxConfig inboxConfig)
{
    if (AbpDistributedEventBusOptions.Inboxes.Count <= 0)
    {
        return;
    }
    using var scope = ServiceScopeFactory.CreateScope();
    var eventInbox = (IEventInbox)scope.ServiceProvider.GetRequiredService(inboxConfig.ImplementationType);

    if (incomingEvent.MessageId.IsNullOrEmpty())
    {
        return;
    }

    if (!Guid.TryParse(incomingEvent.MessageId, out var messageId))
    {
        return;
    }

    if (!await eventInbox.ExistsByMessageIdAsync(incomingEvent.MessageId))
    {
        return;
    }
    incomingEvent.ExtraProperties.Add("ERROR COUNT", 1);
    // UPDATE DE EXTRA PROPERTIES
    await eventInbox.MarkAsProcessedAsync(messageId);
}

Hello, It works with the handler.

Now the same issue i had to publish in multiple topics than i have to implement MyAzureDistributedEventBus:AzureDistributedEventBus, i have to implement the receiver/consumer part with inbox pattern, where i need to add to inbox and process messages comming from multiple queues on Azure Service Bus. Is that possible?

Thank you

Hello, It works with google protobuf instead of EntityEto replacing it on the Mapping.

Following the documentation example using Etos:

Configure<AbpDistributedEntityEventOptions>(options =>
{
    options.AutoEventSelectors.Add<Product>();
    options.EtoMappings.Add<Product, ProductEto>();
});

Adds a selector to allow to publish the create, update and delete events for the Product entity.'

Is possible for create and update events map to ProductEto, and for delete events mapping to other Eto, for example DeletedProductEto? Is there a way to configure the module with this aproach?

Thank you for your help.

Hello, I have two more questions, Im reviewing class DistributedEventBusBase.cs method protected virtual async Task<bool> AddToOutboxAsync(Type eventType, object eventData) and i cant insert to AbpEventOutbox table values on ExtraProperties column when overriding the method.

My second question, Im working with google protobuff to publish binary messages on Azure Service Bus, using MyAzureDistributedEventBus from previous questions, and casting Etos to proto generated classes before publishing on Azure Service Bus. I dont know if it is possible to instead of working on distributed events with Etos and IEntityEto<TKey> interface, is possible to work with a custom interface or a IMessage interface from google protobuff protocol.

Thanks

Hello,

What I mean is whether applications by default can only publish to one topic. So, for two applications to communicate through Azure Service Bus, would they both publish and consume all their events from all their aggregates in the same topic? And what I mean is about the structure of Topics, Subscriptions, and Queues in Azure for the communication of both applications.

Then, regarding multitenancy, I have a question. If I have Application 1 with tenants A and B, and Application 2 with tenants A and B, and the messages published in Azure Service Bus comply with the interfaces you mentioned (IMultitenant or IEventDataMayHaveTenantId), how does Application 2 know which tenant a message published by Application 1 belongs to if the internal IDs of their Tenants in their SaasTenants tables are different in both applications?

Thanks, and sorry for the confusion.

Hello, works fine but i have doubts about it, following your approach of publishing in a single topic for all events generated by all aggregates. For a second application also using Abp, multitenancy, and the outbox and inbox patterns, which wants to integrate with the first application through Azure Service Bus and consume messages from a certain type of aggregate or event. How is the topology managed in Azure? How does the second application know which of its tenants each message published by the first application corresponds to? What is the standard way that Abp has to communicate applications with Service Bus and the outbox and inbox patterns?

Thanks

I will try to implement a custom AzureDistributedEventBus following your code.

Thank you

  • ABP Framework version: v7.4.4
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)

Hi, Im using distributed event bus with outbox pattern and Azure service bus provider. I have 3 requirements that I'm struggling to implement with AzureDistributedEventBus.

The first is the need to publish to different topics based on the event name of the Eto:

[EventName("projects")] public class ProjectEto

[EventName("campaigns")] public class CampaignEto

The second is whether there's a way to override part of the message publishing with AzureDistributedEventBus to achieve the following: With the default implementation of the outbox pattern, when publishing the message to Azure Service Bus, override the message publishing to choose which topic the message corresponds to. Additionally, be able to, if the topic or subscription don't exist, create them programmatically using ServiceBusAdministrationClient.CreateTopicAsync from Azure.Messaging.ServiceBus.Administration.

The last one, because is posible to use outbox pattern with no Sql database/context, so my last question is if i can configure the pattern to not delete the rows in AbpEventOutbox table after publishing on azure and mark as published instead of delete.

Thank you!

Showing 1 to 10 of 20 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13