-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API changes roadmap for 1.0 #142
Comments
I think for most users this is what they'd expect the plugin to do - it's only a handful of power users who want concurrent journals / snapshot stores who'd want the ability to turn this off. We should design the API to support the more common use case which is users running a single journal / snapshot store implementation. |
Ideally, but in some cases can't be avoided (i.e. using |
I think this should be easy to do - I guess we'd need to just add these members to the |
LGTM - on the Akka.Management side we probably need some integration testing with ClusterSingleton and ClusterSharding using those lease implementations, mostly to test that the core Akka.NET side of things handles them properly in those scenarios since I think they've only ever been tested with |
Yes, this makes sense. I'm thinking of adding (tentative argument names):
|
Is this really the common case or am I a power user by default? 😅 I will say that under MSSQL, separate sharding and main journals is the default (even if I'm not separating main journals out further.)
IMO setup classes for persistence would be -so nice-. One of the biggest pains I see with akka is impedence mismatches between trying to config via HOCON and config via ConfigurationBuilder. Setup classes can be painful to write to be clear but otherwise there is a definite impact on consumption by users. Unless, of course, there is some other API-way to configure a given |
I want to give #144 a look before 1.0 makes it out the door |
@to11mtm The second problem with setup classes is that they're applied to the final settings classes of each plugins, not the HOCON settings itself. This creates 2 different "source of truth" for each plugins. Some plugins often depends on reading HOCON configs of other plugins directly to determine its default configuration and could not pick up the changes made by the setup classes. |
Ideally, no plugin should be allowed to read other plugins HOCON configuration directly, they should access the settings of other plugins after they have been initialized (eg. by calling |
Is that really the case for |
Yes, it is still the case:
|
Got it - I think I got it confused with a bug we fixed in Akka.Hosting. Wonder if we need to change that so |
That would be a bit messy to do. Historically, each plugin only need to use a single |
Makes sense - composability could always be handled through an adapter in Akka.Hosting (i.e. merging multiple custom |
It's also a best practice to separate the persistence storage from cluster/sharding from your own persistent actors. That's currently not possible without using hocon. And the second wish for that is to be able to supply a DefaultAzureCredential for the persistence store (ideally for both akka.persistence.azure and mssql when running against azure database) for cluster/sharding. Right now it's only possible using a connectionstring. |
@wesselkranenborg We'll work on Persistence.Azure, MSSQL will need an overhaul to support Azure |
@to11mtm @wesselkranenborg I think I might have a solution for using multiple setups for a single persistence plugin. I'd make a wrapper |
@wesselkranenborg am I right in my assumption that to use Azure AD with Azure SQL you'd have to embed the access token inside the SQL connection string? |
@Arkatufus it's a bit different and a lot of 'magic' is going on behind the scenes. Here you have an example on how to achieve that: https://learn.microsoft.com/en-us/azure/app-service/tutorial-connect-msi-azure-database?tabs=sqldatabase%2Csystemassigned%2Cdotnet%2Cwindowsclient. |
This issue thread is made as a discussion ground on what API needs to be changed/added into
Akka.Hosting
before we're freezing it for 1.0 release. We encourage users to make suggestions in this thread based on their experience in usingAkka.Hosting
so far.Currently,
Akka.Hosting
still need these API addition/changes:Persistence and Cluster Sharding
These API changes are needed to make persistence be compatible with sharding.
AkkaPersistenceJournalBuilder
for journal settings?AkkaPersistenceSnapshotBuilder
for snapshot settingsSetup
classes, they should inject their HOCON configuration directly.akka.persistence.journal.plugin
andakka.persistence.snapshot-store.plugin
settings. Modularize and optionize persistence hosting methods #146Remoting
Clustering
General
The text was updated successfully, but these errors were encountered: