Hacker Newsnew | past | comments | ask | show | jobs | submit | paidcompute's commentslogin

Can Restate handle backward compatibility and versioning for long-running processes that might span multiple software updates?


Yes, Restate supports registering different versions of your handler code. Restate requires that the code is still available for as long as there is an in-flight invocation of your handler for a given version. Breaking your handler/long-running process up into multiple steps can shorten this time tremendously. Then, one only needs to make sure that the handler/process state is forward-compatible. For example, using Protobuf for your handler/process state will make this fairly straight-forward.


Pretty impressive


this is pretty cool, I've seen a similar project already, I think it's called SQL translate


Can you dive deeper into the technical details of how Restate integrates with Lambda's versioning system to ensure in-flight requests?


Every Lambda you deploy to AWS Lambda gets a version assigned. The corresponding arn would look like `arn:aws:lambda:my-region:123456789101:function:my-function:my-version`. Once you have deployed the Lambda, you register it with Restate by providing this very same arn. Now, when Restate invokes a Lambda function, it remembers the arn with which it started the invocation. So on any subsequent retry, Restate will always invoke the same arn it started the invocation with.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: