swift-server / swift-aws-lambda-runtime

Swift implementation of AWS Lambda Runtime
https://swiftpackageindex.com/swift-server/swift-aws-lambda-runtime
Apache License 2.0
1.15k stars 105 forks source link

Discussions repository Feature #289

Closed fitomad closed 1 year ago

fitomad commented 1 year ago

I think that turn on the Discussion repository feature could be useful in order to provide a space to discuss topics other than issues or enhancements requests but always related to the use of this project.

Architecture

It would be a good idea to have a space where talk about architectural questions related to AWS Lambdas implementation with Swift using this project or how-to implement AWS Lambda Layers and the software design implications that it brings.

As UIKit framework teams did, the gave us the framework and said...

Hey guys, the best choice to work with this framework is following the MVC architecture pattern

We can start thinking about different architectural patterns that match with the nature of Lambdas and its usage with Swift, for example Hexagonal architecture, or MVC architecture.

Design Patterns

Another point of discuss is recommend a set of software patterns to solve common projects goals, for example the use of Lambdas as AWS API Gateway backend (defining a handler per endpoint and each related operation follows the Command pattern, or something like that...)

Sample Project

We can define some kind of sample project that serves as a PoC for all of this stuffs and future ones, as the projects used in the WWDC to show the different features, and include it in the Example folder of this project.

Conclusion

All of those points could be useful to define the way to work with AWS Lambdas using Swift at different projects scale, from the simple one, receiving an event from AWS SQS, to the complex one, where a mix of various API Gateway and SQS events are received and have a shared Domain and Data layers in a AWS Lambda Layer, storing data in a AWS DynamoDB instance

tomerd commented 1 year ago

thanks for bringing this up @fitomad there are a few spots where we can discuss such things:

swift forums: https://forums.swift.org/c/related-projects/aws-lambda-runtime/63 community slack: https://swift-open-source.slack.com/archives/C014TGU0GTE

fitomad commented 1 year ago

Thanks for the info.

I didn't know the Slack channel (I hope giphy integration was disabled 🤪)

I'll take a look to forums and Slack

I think we can mark as closed this issue.

fitomad commented 1 year ago

Hi @tomerd

Just one question about Slack community channel. Does It works under invitation process?

Thanks!

ktoso commented 1 year ago

Here's an invite link, anyone is free to generate such invite link: https://join.slack.com/t/swift-open-source/shared_invite/zt-1pdcdvaqp-Nvh1QMRifpp_Js1kt5UjPQ

fitomad commented 1 year ago

Thanks @ktoso!