CAP

Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern

MIT License

Stars
6.5K
Committers
110

Bot releases are hidden (Show)

CAP - 8.2.0 Latest Release

Published by yang-xiaodong 4 months ago

Features

  • Add support CustomHeadersBuilder option for NATS. (#1519)
  • Add GroupConcurrent option for [CapSubscribe] to support subscriber concurrent execution. (#1537)
  • Add option for controlling reponse from CapHeader. (#1541)
  • Improvements to the "EnablePublishParallelSend" option to "true" will put tasks into the .NET thread pool in batches. (#1540)

Bug Fixed

  • Fixed issue where CapTransaction was not disposed when the transaction failed for Sql Server. (#1521)
  • Fixed NATS reconnection publish issue after restarting server. (#1542)

What's Changed

  • Upgrade dashboard npm package to vue2 latest minor version.
  • Upgrade Ngpsql to 8.0.3 to fix "Npgsql vulnerable to SQL Injection via Protocol Message Size Overflow".
  • Simplify code using deconstruction. by @xiangxiren in https://github.com/dotnetcore/CAP/pull/1533

Full Changelog: https://github.com/dotnetcore/CAP/compare/v8.1.2...v8.2.0

CAP - 8.1.2

Published by yang-xiaodong 6 months ago

Bug Fixed

  • Fixed publish exception when event outside of transaction finishing scope. (#1521) Thanks @NikolozGob
  • Fixed PublishDelay synchronization method did not wait internally.
CAP - 8.1.1

Published by yang-xiaodong 6 months ago

Features

  • Add more granular option for AzureServiceBus. (#1514)
  • Add new options SubscriberParallelExecuteThreadCount,SubscriberParallelExecuteBufferFactor to better support parallel execte subscriber. (#1513)
  • Delete obsolete option CustomerHeader.
CAP - 8.1.0

Published by yang-xiaodong 7 months ago

Breaking Changes

Since version 7.2, in an effort to improve the performance on the publishing side, we have tasked the .NET thread pool with handling message publishing. However, because tasks in the thread pool are not guaranteed to be executed in order, and because ensuring linear publishing makes sense in certain use cases, we will revert to linear publishing starting with this version. At the same time, we are introducing a new option, EnablePublishParallelSend, to allow users to enable parallel message sending.

Features

  • Upgrade reference nuget packages.
  • Add new option EnablePublishParallelSend to support enable parallel message sending. (#1480) Thanks @yang-xiaodong
  • Dashboard k8s discovery respect the node port while configuring downstream request. (#1478) Thanks @3ldar
  • Allow mongo start transaction custom session handle. (#1485) Thanks @shkarface
  • SubscribeFilter Include MediumMessage in ConsumerContext. (#1464) Thanks @bschwehn
  • Add publishing async support for start transaction. (#1493) Thanks @yang-xiaodong
  • Azure Service Bus support configure additional message correlation header. (#1497) Thanks @demorgi
  • Allow configuring PostgreSQL using an Npgsql data source. (#1496) Thanks @jonekdahl
  • Allow configuring NATS using consumer options. (#1500) Thanks @yang-xiaodong

New Contributors

Full Changelog: https://github.com/dotnetcore/CAP/compare/v8.0.1...v8.1.0

CAP - 8.0.1

Published by yang-xiaodong 9 months ago

Bug Fixed

  • Fixes publisher callback context propagation for OpenTelemetry. (#1454)
  • Fixes dashboard auth to make /ping and /health endpoints to allow anonymous requests. (#1475) Thanks @3ldar
CAP - 8.0.0

Published by yang-xiaodong 10 months ago

Breaking Changes

DotNetCore.CAP.Dashboard removed DefaultAuthenticationScheme, UseChallengeOnAuth, DefaultChallengeScheme and AuthorizationPolicy options .

Now CAP dashboard auth/authz mechanism to leverage the "ASP.NET Core" way of doing it, see #1428.

  • Streamlined auth via asp.net middlewares. (#1434) Thanks @mviegas

Features

  • Fully Support .NET 8.
  • Add FallbackWindowLookbackSeconds option to configure the retry processor to pick up the backtrack time window for Scheduled or Failed status messages. (#1455) Thanks @apatozi
  • Update IConsumerRegister.Default.cs to make dispose thread safe. (#1438) Thanks @blashbul
  • Compatible with .NET 8's dependency injection KeyedService. (#1436) Thanks @EashShow
  • Add virtual method to custom delay backtrack time window during delayed publishing large messges. (#1429) Thanks @PoteRii

Bug Fixed

  • Fixed message infinite retry of messages after subscriber is removed. (#1456) Thanks @bschwehn
  • Fixed open telemetry context lost on consumer retry and Baggage Propagation. (#1452) Thanks @bschwehn
  • Fixed NATS do not handle reconnect if the nats server is forcibly shutdown and then restarted. (#1449) Thanks @davidterins
  • Fixed outbox pattern messages does not recovery when using DotNetCore.CAP.InMemoryStorage. (#1439) Thanks @davidterins
  • Fixed open telemetry subscriber thows null reference when using azure service bus without connection string. (#1432) Thanks @demorgi
  • Fixed double registration of event handler for azure service bus. (#1427) Thanks @demorgi
  • Fixed publish delay message not working in sql server transaction. (#1422) Thanks @xiangxiren
CAP - 7.2.2

Published by yang-xiaodong 12 months ago

Features

  • NATS support consumer config DeliverPolicy, default to New. (#1404)
  • Be able to configure if to subscribe to custom producer topic. (#1409) @demorgi

Bug Fixed

  • Try to fixes RabbitMQ basicConsume TimeOutException. (#1405) @yang-xiaodong
  • Change MongoDb index from descending to ascending. (#1415) Thanks @ustaserdar
  • Fixed parent span for "Event Persistence" activity trace. (#1407) Thanks @blashbul
  • Fixed OpenTelemetry Dynatrace IsRemote flag. (#1402) Thanks @phmonte
  • Mark Mongo time serialized to local instance time by default. (#1400)
  • Fixed k8s dashboard meta query error in standalone mode. @yang-xiaodong
  • Azure Service Bus, consumer fails if subscription has session enabled. (#1396, #1397) Thanks @demorgi
CAP - 7.2.1

Published by yang-xiaodong about 1 year ago

Features

  • The options EnableConsumerPrefetch and UseDispatchingPerGroup will work together without interference. (#1399)

Bug Fixed

  • Fixed SqlServer sql case sensitive in dashboard query. (#1389)
  • Fixed Redis endpoint is null in DotNetCore.CAP.OpenTelemetry. (#1384)
CAP - 7.2.0

Published by yang-xiaodong about 1 year ago

Breaking Changes

  • Remove ProducerThreadCount configuration option. Now automatically send task managed by the .NET thread pool. (#1380)
  • Change the SnowflakeId from static singleton to dependency injection singleton. (#1322)

Features:

  • Add support for kubernetes discovery in dashboard. (#1362)
  • Message send task and consumer execute task managed by .net thread pool. (#1380)
  • Upgrade dependencies of NuGet packages.

Bug Fixed:

  • Fixed BasicQosOptions not working as expected for RabbitMQ transport. (#1318)
  • Revert BeginTransactionAsync support. (#1376)
  • Fixed SqlServer transaction rollback message still sent out. (#1378)
CAP - 7.1.4

Published by yang-xiaodong over 1 year ago

Features:

  • Add suppport AutoDeleteOnIdle option for Azure Service Bus. (#1350) Thanks @StevenDevooght

Bug Fixed:

  • Keep the originall stack when consumer exception occurs. (#1341) Thanks @tomyangOK
  • Fixed multiple invocations caused when the retry processor exceeded the FailedRetryInterval. (#1359) Thanks @li-zheng-hao
  • Fixed thread blocking when enable UseDispatchingPerGroup option. (#1356) Thanks @sampsonye @li-zheng-hao
CAP - 7.1.3

Published by yang-xiaodong over 1 year ago

Features

  • Allow Explicit to set AllowAnonymous for the dashboard API. (#1335)
  • Update dashboard UI style
  • Add Cancellation token for BeginTransactionAsync. (#1317) Thanks @denis-tsv

Bug Fixed

  • Fixed postgresql AcquireLockAsync sql error. (#1320) Thanks @guochen2
  • Fixed redis transport order pool connections non-lazy created connections. (#1332) Thanks @MahmoudSamir101
  • Fixed mysql 8.0 storage skip locked not available bug. (#1330) Thanks @yang-xiaodong
CAP - 7.1.2

Published by yang-xiaodong over 1 year ago

Bug Fixed

  • Optimizing consumer duplicate detection warning logs. (#1314)
  • Fixes NATS consumption repeat when multiple consumer threads.
  • Fixes NATS transport infinity reconnect race condition. (#1311)

Full Changelog: https://github.com/dotnetcore/CAP/compare/v7.1.1...v7.1.2

CAP - 7.1.1

Published by yang-xiaodong over 1 year ago

Features

  • Add support topic config for kafka. (#1303)
  • Log in to dashboard with JWT authentication. (#1306)

Bug Fixed

  • Fixed sqlserver character string convert to datetime2 exception. (#1302)
  • Fixed dashboard consul node proxy switch bug. (#1307)
CAP - 7.1.0

Published by yang-xiaodong over 1 year ago

Features

  • Add option to support distributed locks for retry processor. (#1272) Thanks @li-zheng-hao
  • Add option to support set BasicQos for RabbitMQ. (#1267) Thanks @nunorelvao
  • Add option to set queue type for RabbitMQ. (#1281) Thanks @PaulCousinsTTEducation
  • Add support publish to mutiple topics for Azure Service Bus. (#1283) Thanks @jonekdahl @mviegas

Bug Fixed

  • Fixed dashboard re-execute message throw null exception for MongoDB. (#1279) Thanks @cagataykiziltan
CAP - 7.0.3

Published by yang-xiaodong over 1 year ago

Features

  • Add SQL Filters option on topic subscribtion for AzureServiceBus. (#1263) Thanks @giorgilekveishvili-meama
  • Add EF BeginTransaction extensions overload with isolationlevel and async version. (#1266) @xshaheen

Bug Fixed

  • Fixed dashboard re-execute message throw null exception for SqlServer and Postgres. (#1259) Thanks @coolyuwk
CAP - 7.0.2

Published by yang-xiaodong almost 2 years ago

Features

Bug Fixed

  • Fixed redis streams json serialize exception. (#1254)
  • Fixed dashboard route in balzor server app. (not support wasm) (#1244)
CAP - 7.0.1

Published by yang-xiaodong almost 2 years ago

Bug Fixed

  • Fixed dashboard not working in balzor app. (#1244)
  • Fixed error when published Winform with 'Produce Single File'. (#1245)
CAP - 7.0.0

Published by yang-xiaodong almost 2 years ago

Breaking Changes

  • SubscribeFilter method to asynchronous.
  • IConsumerClient interface OnMessage and OnLog is from event to delegate.

Features

  • Performance improvement
  • Add support publish delay message. (#1237)
  • Dashbord support viewing and immediately publish for delayed messages.
  • Add support for metrics diagnostics. (#1230)
  • Dashboard support real-time metric graph viewing.
  • Add support manual start/stop CAP process. (#1238)
  • Add EnableConsumerPrefetch option of consumer. (#1240)
  • Add PublishConfirms options for RabbitMQ.

Others

  • Change framework target from netstandard to net6.
  • Upgrade NuGet to the latest version.

Bug Fixed

  • RabbitMQ cluster connection failed without using default ports. (#1232)

Release Blog(In Chinese)

CAP - 6.2.1

Published by yang-xiaodong about 2 years ago

Bug Fixed

  • Fixed EnvironmentVariableTarget.Machine only supported on windows. (#1220) Thanks @cuibty
  • Fixed RedisStream TryGetOrCreateStreamGroupAsync to create ConsumerGroup when not found. (#1212) Thanks @mlatoszek
CAP - 6.2.0

Published by yang-xiaodong about 2 years ago

Features:

  • Add Chinese support for dashboard localization. (#1157) Thanks @tetris1128
  • Make DbTransaction property virtual for extend of CapTransactionBase. (#1179) @yang-xiaodong
  • Add logs for duplicate subscriber in same group. (#1186) @yang-xiaodong
  • Record the Instance Id in the executed received messages. (#1187) @yang-xiaodong

Bug Fixed:

  • SnowflakeId excludes virtual and loopback and non-working NICs. (#1163) Thanks @xiatiandegaga
  • Fixed the health check could not get the status correctly when RabbitMQ lost connection and quickly recovered. (#1193) Thanks @rpenha
  • Fixed dashboard gateway proxy request missing QueryString (#1168) Thanks @wwwu
  • Fixed the disconnect detection of RabbitMQ connection abnormality. (#1178)
  • Fixed Mongo queries not returning results when a element convention name is registered. (#1193) Thanks @rpenha
  • Fixed subscriber lookup in scoped lifecycle of factory mode. (#1204) Thanks @sampsonye