Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sam-goodwin/24cfe5720569293354160aec48aba600 to your computer and use it in GitHub Desktop.
Save sam-goodwin/24cfe5720569293354160aec48aba600 to your computer and use it in GitHub Desktop.
Functionless Talk Proposal

Description

Instead of writing Velocity Templates or Amazon States Language, just write TypeScript functions and the Functionless compiler will automatically convert them to AppSync Resolver Pipelines and Step Function definitions. Enjoy the type-safety and expressiveness of TypeScript without Lambda Functions!

Describe your talk in as much detail as you desire

Functionless (https://github.com/sam-goodwin/functionless) is a Typescript Plugin that allows developers to write all of their infrastructure in native TypeScript, generating all the various configuration language like Amazon States Language, Velocity Templates, Event Bridge patterns (and more) without leaving TypeScript and without complicated DSLs.

The name, Functionless, comes from the concept of service-to-service integrations (colloquially referred to as "functionless") that are higher level than "serverless" integrations such as AWS Lambda Functions. The two examples I'll be discussing are AWS AppSync Resolvers and AWS Step Function's Amazon States Language (ASL). Developers configure these services with a DSL and delegate responsibility of scale and operations to AWS.

Before Functionless, creating AppSync Resolvers required the developer to write Apache Velocity Templates (VTL) and configure AppSync resolvers to configure integrations between the AppSync service and their backend Resources, such as AWS Lambda Functions or AWS DynamoDB Tables. These configurations require a full context switch out of the CDK code and are often verbose and fragile, when all the developer is trying to do is configure an API call.

AWS Step Functions has a similar story - the developer must understand the Amazon States Language (ASL) and configure it with the @aws-cdk/aws-stepfunctions Construct library.,This library provides a type-safe abstraction of ASL and automates the integration patterns, such as IAM policies and integration payloads, but it can be verbose and obfuscated when compared with the control-flow logic it actually represents. Functionless attempts to improve on this experience by using TypeScript syntax to express the Step Function logic, e.g. using if-else, while, for-loops, function calls, variable declarations, etc.

My talk will give a brief overview of the concept of "functionless" integrations, some of the challenges with configuring these today and then demo how Functionless improves upon the developer experience.

Session format

Lightning Talk (20 minutes)

Level

Advanced

Which CDK is your focus for this presentation?

AWS CDK

What formats are you comfortable with?

Both

If live, what is your preferred UTC time window?

7pm-7am UTC

Would you like help preparing your presentation?

yes

I consent to being on a live stream & recorded

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment