Thomas Step

← Blog

I recently launched a Slack app to help with channel bloat! Simply installing it would help me out a bunch. I have 2/10 installations required to submit my app to the Slack Marketplace. Thanks for helping me reach that goal.

re:Invent: Evolutionary AWS Lambda Functions With Hexagonal Architecture

Edit: I have since written a post about implementating hexagonal architecture if you would rather see code and about the architecture of the service that featured that hexagonal architecture.

This is an overview of a session that I went to during re:Invent 2021. I start by providing the notes I took during the session, and then I will give my take and comments if I have any at the end.

Tuesday 16:15

ARC302-R2

Agenda:

Evolving an application in the cloud.

Modularity in code and infrastructure.

Anatomy of hexagonal architecture

Lambda with hexagonal architecture

Additional use cases (I think all of these are just proper logic separation so that changing something becomes simply changing the logic that interfaces externally)

Is this the definitive arch for Lambda?

Key takeaways

Resources: go.aws/3EWz4Kf (his blog post about this)

My notes:

I think this pattern makes sense. I dug a little more and did find the code that he presented which might help others understand the different roles are for each layer. The code is about the stocks example. Either way, I feel like most teams I have worked with so far use an architecture similar to this one with proper separation of concerns, but I have never given it a particular name. I could see something like this being beneficial by creating my own packages which are adapters, then reusing that common code across projects. For example, have adapters for Lambda handlers being invoked by various services and others for interacting with common other services like DDB and SNS.

Categories: aws