BEST
DEALS
OF THE
YEAR!
SAVE UP TO $3,000
24 NOV
1 DEC
00 Days
00 Hrs
00 Min
00 Sec

Activities of "VertoCore"

ABP Commercial Version: 8.3
Architecture: Monolithic
UI Framework: ASP.NET MVC
Database: SQL Server
License Type: Commercial


Executive Summary

We are operating a large-scale financial system experiencing significant transaction volumes with intensive read and write operations. We require official architectural guidance from the ABP team to optimize system performance, particularly for:

  1. Separating read operations from write operations to prevent performance degradation
  2. Isolating heavy reporting workloads from transactional processing
  3. Implementing appropriate caching strategies for financial data

Current Challenge

Our financial system processes a very high volume of daily transactions, and we're experiencing concerns regarding:

  • Read-heavy operations (dashboards, lookups, financial queries) potentially impacting critical write operations
  • Complex reporting queries degrading OLTP (Online Transaction Processing) performance
  • Need to maintain optimal response times for core financial transactions under all conditions

Specific Questions

1️⃣ Read/Write Workload Separation

We seek ABP's official recommendations for:

  • Architectural patterns to separate read and write workloads in ABP Commercial
  • Whether ABP supports or recommends specific patterns (e.g., CQRS implementations)
  • ABP-specific features or modules designed for this separation
  • Best practices for implementing read replicas or read-specific data stores within ABP framework

2️⃣ Reporting Architecture

We need guidance on:

  • Recommended approach for isolating reporting workloads from transactional operations
  • Whether ABP Commercial includes built-in reporting optimization features
  • Best practices for designing reporting databases/data warehouses alongside ABP
  • Strategies for handling large-scale financial reports without affecting system performance

3️⃣ Caching Strategy

Please advise on:

  • ABP Commercial's recommended caching approaches for financial data
  • Which ABP caching mechanisms are most appropriate for high-frequency read operations
  • Distributed caching configuration best practices for monolithic architecture
  • Cache invalidation strategies that work well with ABP's Unit of Work pattern

4️⃣ Database Optimization

We would appreciate guidance on:

  • ABP's recommendations for database indexing strategies for financial systems
  • Entity Framework Core optimization techniques specific to ABP
  • Connection pooling and query optimization best practices
  • Whether ABP supports read-only database connections for query operations

What We're Looking For

  • Official ABP Commercial best practices for high-volume financial systems
  • Reference architectures or sample projects demonstrating these patterns
  • Documentation covering performance optimization for large-scale ABP applications
  • Module recommendations from ABP Commercial suite that address these challenges
  • Configuration examples for optimal performance settings

Additional Context

  • System must maintain ACID compliance for all financial transactions
  • High availability and data consistency are critical requirements
  • We prefer solutions that align with ABP framework architecture rather than custom implementations
  • We are open to upgrading to newer ABP versions if specific features would benefit our use case

Expected Outcome

We aim to implement a production-ready architecture that:

  • Ensures write operations are never impacted by read/reporting loads
  • Provides fast response times for user-facing queries
  • Scales efficiently as transaction volumes grow
  • Follows ABP Commercial recommended practices and patterns

Thank you for your continued support. We greatly value the ABP team's expertise and look forward to your guidance.

Best regards,

  • ABP Framework version:v8.3.3

  • UI Type: Angular / MVC

  • Database System: EF Core (SQL Server)

  • Tiered (for MVC) or Auth Server Separated (for Angular): yes

    **Feature: ** Enable primary users to self-manage their secondary users.

Overview:

I would like to implement a feature that allows a primary user to create and manage subordinate users. The primary user should have the ability to assign permissions to these subordinate users, but only within the limits of their own permissions. For example, if the primary user has permissions to add, edit, delete, and view books, they should be able to create a subordinate user and assign them only the permission to view books. The key requirement is that the primary user can only grant permissions that they themselves possess.

Additionally, this requirement is to enable subordinate users to access the primary user's financial account, but strictly within the permissions and limits granted to them by the primary user.

Key Points to Consider: User Creation: The primary user can create subordinate users under their account. Permission And Role Assignment: The primary user can assign roles or permissions to these subordinate users, but only the permissions that they have. Limitations: Ensure that the subordinate users cannot be granted permissions beyond what the primary user has.

I would appreciate any guidance or examples on how to implement this functionality effectively.

On some languages works ok. I tried EN, TR, RU, AR, ZH-HANS and IT. Only happened on AR and RU

  • ABP Framework version: v7.2.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC): yes
  • OpenIddict Separated: yes
  • Microservices: yes
  • Steps to reproduce the issue:

Change language to Arabic then select SettingsManagement -> IdnetitySettings

  • Exception message and stack trace:

2023-05-23T18:14:18.9022082+03:00 [WRN] (Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware) The response has already started, the error page middleware will not be executed. 2023-05-23T18:14:18.9023836+03:00 [ERR] (Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware) An unhandled exception has occurred while executing the request. System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead. at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.Write(Byte[] buffer, Int32 offset, Int32 count) at Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Write(String value) at Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBuffer.WriteToAsync(TextWriter writer, HtmlEncoder encoder) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor.ExecuteAsync(ActionContext context, ViewComponentResult result) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor.ExecuteAsync(ActionContext context, ViewComponentResult result) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultAsync>g__Logged|22_0(ResourceInvoker invoker, IActionResult result) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultFilters>g__Awaited|28_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) at Volo.CmsKit.Public.Web.DefaultHomePageMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)

Showing 1 to 3 of 3 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on November 20, 2025, 09:12
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.