Skip to content

Conversation

@allenheltondev
Copy link
Collaborator

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

Copy link
Contributor

@kvcache kvcache left a 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:
Copy link
Contributor

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",
Copy link
Contributor

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:
Copy link
Contributor

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.
Copy link
Contributor

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.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
*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)
Copy link
Contributor

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)
Copy link
Contributor

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)
Copy link
Contributor

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!

Comment on lines +36 to +39
(Amazon S3)
(Momento Topics)
(Momento Cache)
(Amazon Bedrock)
Copy link
Contributor

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.
Copy link
Contributor

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.

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