-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Dennis Vriend edited this page Dec 25, 2017
·
2 revisions
sbt-sam is created to make use of AWS's resource and event-driven architecture called serverless
. sbt-sam assumes that each sbt-sam project
is modeled around the concept of a component as defined by the component architecture.
The TL;DR of a component
is that a component:
- has a single resonsibility/focus,
- is composed of resources,
- are isolated by default,
- can share resources between components,
- are driven by events
Serverless components are description based. Components are composed of resource that are wired together by means of resource descriptions and resource subscriptions. Wiring managed resources, and separating state from function, and leveraging event-driven architecture makes components cloud-scale.
Components are defined by:
- resource descriptions
- DynamoDB tables,
- Kinesis streams,
- SNS topics,
- Aurora databases,
- ...
- Functions subscribe to events
- Scala classes extends specialized traits to handle specific events,
- Scala classes must be annotated to define resource subscriptions,
- Generic functionality by means of Java and Scala libraries,
- Scala expressions are resources themselves; they are
Lambda
resources
- Resource and Event Driven Runtime
- (AWS) Amazon Web Services,
- Preferred resource type:
Managed Resource
, - Serverless Event Driven Runtime
- Components are
- sbt-sam projects
- encapsulate resource definition
- define isolation
- expose resources
- Deployment by means of
- sbt tasks and settings