Skip to content
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

docs: lightweight deployments for akka edge #1039

Merged
merged 1 commit into from
Oct 11, 2023

Conversation

pvlugter
Copy link
Contributor

First pass on some Akka Edge docs for what I'm calling "lightweight deployments" — covering lightweight kubernetes, OpenJ9, GraalVM native image, and multidimensional autoscaling.

Copy link
Member

@johanandren johanandren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@johanandren johanandren merged commit 1dfeff5 into main Oct 11, 2023
19 checks passed
@johanandren johanandren deleted the docs/lightweight-deployments branch October 11, 2023 11:40
Copy link
Member

@patriknw patriknw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

The GraalVM Native Image tracing agent can only generate configuration for code paths that were observed during the
running of an application. When using this approach for generating configuration, make sure that tests exercise all
possible code paths. In particular, check dynamic serialization of classes used for persistence or cross-node
communication.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, all configured serializers are loaded at startup, so it's not needed to send all messages to find them (as far as I understand). Unless there is additional reflection in the serialization library.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, serializer classes are reflectively loaded at startup. The tricky part is when the deserialization dynamically creates classes with reflection — the constructor and other methods accessed reflectively need to be in the config.

We've seen this with the samples. This was a missed scenario for deserializing existing persisted state: #1002 (comment). And here some messages were only local and didn't end up going over remoting serialization when testing: 23fc027. We may not have covered all cases ourselves for the samples — for example, I don't think I checked deserializing persisted snapshots.

Having automated reflect config will be useful for serialization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants