You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For some time we were talking about things that we should probably drop when 1.5 will came out. Until that time, there was an idea to inform about incoming changes in form of marking necessary classes as Obsolete when possible, and where the changes are not explicitly visible in the code - in form of warning log. This could look similar to the JVM akka note about JavaSerializer usage.
List of things to change
Note: not all of these changes can be made at the present moment, as some parts are still WIP.
Obsoleting TypedActor - they are considered very bad for the performance reasons and heavily limit some of the Akka features (like Finite State Machines).
Obsoleting Inbox - it has a very limited usage and can be easily replaced with other mechanisms. Effectivelly just like in case of TypedActor it's a legacy feature.
Switching default serializer from Newtonsoft.Json ⇒ Wire - JSON.NET was source of many issues. Ultimately it's not able to fit Akka.NET requirements. It's performance in this specific scenarios is also very questionable. Therefore we already encourage people to change it to dedicated serializers and are going to stop using JSON.NET due to number of issues it caused already.
Replacing our internal immutable collections library with System.Collections.Immutable (see Unify immutable collections #1676) - this also becomed a leagacy code, as we're already using System.Collecions.Immutable in most of the core plugins.
Replacing Helios transport layer with DotNetty (see [WIP] DotNettyTransport #1465) - ultimately Helios didn't create such community as Akka.NET, making it expensive to maintain and develop. In the meantime Azure team has already open sourced it's DotNetty library, which perfectly serves our purpose.
Upgrading Akka.Persistence (see Akka.Persistence - update code base to akka JVM v2.4 #1402) - current version of this plugin is compatible with it's JVM counterpart from v2.3. From that time things have changed. There is a possibility for the breaking changes on that field as well.
Changing Dependency Injection API (see Redesign the Dependency Injection API #1675) - as already discussed, current DI API lacks some features. Modifying it will be also a breaking change.
Why on 1.5?
To make it clear - Akka.NET is not using SemVer at the moment. The reason behind choosing version 1.5 to introduce changes was, that not all akkadotnet team members were convinced, that they are major API breaking ones - most of them is concerning underlying stack, not API itself - to require a major number version change. While we have some plans for v2.0 API already, we decided to follow the convention introduced by .NET team to introduce similar kind of changes in X.5 version.
The text was updated successfully, but these errors were encountered:
Per the Akka.NET contributor's meeting today - won't be deprecating the DI API just yet. Not until a new design has been chosen, which will happen after 1.5.
For some time we were talking about things that we should probably drop when 1.5 will came out. Until that time, there was an idea to inform about incoming changes in form of marking necessary classes as
Obsolete
when possible, and where the changes are not explicitly visible in the code - in form of warning log. This could look similar to the JVM akka note about JavaSerializer usage.List of things to change
Note: not all of these changes can be made at the present moment, as some parts are still WIP.
TypedActor
- they are considered very bad for the performance reasons and heavily limit some of the Akka features (like Finite State Machines).Inbox
- it has a very limited usage and can be easily replaced with other mechanisms. Effectivelly just like in case ofTypedActor
it's a legacy feature.Changing Dependency Injection API (see Redesign the Dependency Injection API #1675) - as already discussed, current DI API lacks some features. Modifying it will be also a breaking change.Why on 1.5?
To make it clear - Akka.NET is not using SemVer at the moment. The reason behind choosing version 1.5 to introduce changes was, that not all akkadotnet team members were convinced, that they are major API breaking ones - most of them is concerning underlying stack, not API itself - to require a major number version change. While we have some plans for v2.0 API already, we decided to follow the convention introduced by .NET team to introduce similar kind of changes in X.5 version.
The text was updated successfully, but these errors were encountered: