-
Notifications
You must be signed in to change notification settings - Fork 28
[Preview] Functions #1479
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
base: main
Are you sure you want to change the base?
[Preview] Functions #1479
Conversation
kvcache
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got partway through, but I need to go run an errand. We might should iterate on this further internally rather than on the public repo. Thanks for starting this!
|
|
||
| ## Usage | ||
|
|
||
| Both API keys and session tokens must be provided in every request made to a function and are valid in one of two places: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you don't provide both an api key and a session token.
| "permissions": [ | ||
| { | ||
| "role": "invoke", | ||
| "namespace": "my-namespace", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't we use the word "cache" still?
| ``` | ||
|
|
||
| ### Invoke specific functions in a namespace | ||
| To grant access to invoke only `"function-a"` and `"function-b"` within the namespace `"my-namespace"`, define the permissions as follows: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This statement and the json below are inconsistent with one another
| Momento supports multiple IAM roles, allowing you to configure separate roles for different use cases, services, or functions. | ||
|
|
||
| ## How AWS role delegation works | ||
| To enable *Momento Functions* to access your AWS services, you must create an IAM role in your AWS account that grants the necessary permissions. This role must include a trust policy that allows Momento to assume the role when needed. Once the role is created, you link it to your Momento account by pasting the IAM Role ARN into the Momento onsole. After the role is successfully configured, Momento can securely access AWS services according to the permissions specified in the IAM policy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This whole page is specific, but I don't know if it is accurate.
|
|
||
| # Momento Functions | ||
|
|
||
| *Momento Functions* are a high-speed compute layer designed for processing massive amounts of real-time data. Whether you're aggregating IoT sensor data, handling financial transactions, or enriching event streams with AI, *Momento Functions* allow you to process, transform, and act on data instantly—without managing infrastructure. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| *Momento Functions* are a high-speed compute layer designed for processing massive amounts of real-time data. Whether you're aggregating IoT sensor data, handling financial transactions, or enriching event streams with AI, *Momento Functions* allow you to process, transform, and act on data instantly—without managing infrastructure. | |
| *Momento Functions* is a lightweight compute layer designed for processing real-time data. Whether you're aggregating IoT sensor data, recording financial transactions, or enriching event streams with AI, *Momento Functions* allows you to process, transform, and act on data instantly—without managing infrastructure. |
Looks good, but I'd tighten this up a little further.
| mindmap | ||
| root((Momento Functions)) | ||
| (Fast Execution) | ||
| (5ms SLA for ultra-fast processing) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we're offering an SLA. Some functions will take much longer to execute than 5ms, and it's largely outside of Momento's control how long they take. We can't make Bedrock go any faster than it does, and we can't exceed the universe's rate of information propagation (C).
Maybe we can say something about sub-millisecond cold starts, if you want to add a latency number? I think people typically associate that number with the right technical detail.
| root((Momento Functions)) | ||
| (Fast Execution) | ||
| (5ms SLA for ultra-fast processing) | ||
| (10x faster, 10x cheaper) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Than...? 😄
| (5ms SLA for ultra-fast processing) | ||
| (10x faster, 10x cheaper) | ||
| (Shared Global Memory) | ||
| (All function instances share state) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is sort of the case, and I'm not sure how far we'll go down the path of pretending that an in-memory cache is global. We could make it global and transactional, but that would slow down functions tremendously!
| (Amazon S3) | ||
| (Momento Topics) | ||
| (Momento Cache) | ||
| (Amazon Bedrock) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe you want to either alphabetize or group the integrations by top-level owner?
|
|
||
| * Global memory shared across all function instances enables stateful execution without an external database. | ||
| * Automatic batching allows functions to process multiple related events in a single execution cycle. | ||
| * No concurrency limits means functions can instantly scale to handle millions of invocations per second without cold starts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure we'll have no concurrency limits. I think it's going to be easy to set high limits, but we can't sustain, e.g., a trillion concurrent requests on each frontend host.
Please do not translate these pages! These are for reference only.
Based on the infromation that has been tossed around, I came up with a set of pages that describe Functions and how users can interact with them. I made lots of assumptions and would love to hear feedback on what is incorrect, up in the air, or what was missed.
The docs are written from a perspective that Functions have already launched and we have a first-pass experience with them.
If you run the docs locally, you can view the root at
http://localhost:3000/functions