Files
.circleci
.github
.mvn
abstract-document
abstract-factory
active-object
acyclic-visitor
adapter
aggregator-microservices
ambassador
api-gateway
arrange-act-assert
async-method-invocation
balking
bridge
builder
business-delegate
bytecode
caching
callback
chain-of-responsibility
circuit-breaker
cloud-static-content-hosting
collection-pipeline
combinator
command
commander
composite
composite-entity
converter
cqrs
dao
data-bus
data-locality
data-mapper
data-transfer-object
decorator
delegation
dependency-injection
dirty-flag
domain-model
double-buffer
double-checked-locking
double-dispatch
eip-aggregator
eip-message-channel
eip-publish-subscribe
eip-splitter
eip-wire-tap
etc
event-aggregator
event-asynchronous
event-driven-architecture
event-queue
event-sourcing
execute-around
extension-objects
facade
factory
factory-kit
factory-method
fanout-fanin
feature-toggle
filterer
fluentinterface
flux
flyweight
front-controller
game-loop
guarded-suspension
half-sync-half-async
hexagonal
intercepting-filter
interpreter
iterator
layers
lazy-loading
leader-election
leader-followers
localization
lockable-object
marker
master-worker-pattern
mediator
memento
model-view-controller
model-view-presenter
model-view-viewmodel
module
monad
monitor
monostate
multiton
mute-idiom
naked-objects
null-object
object-mother
object-pool
observer
page-object
parameter-object
partial-response
pipeline
poison-pill
presentation
priority-queue
private-class-data
producer-consumer
promise
property
prototype
proxy
queue-load-leveling
reactor
reader-writer-lock
registry
repository
resource-acquisition-is-initialization
retry
role-object
saga
separated-interface
servant
serverless
etc
aws-black.png
azure-black.png
gcf-black.png
kubeless-logos-black.png
openwhisk-black.png
serverless.urm.png
serverless.urm.puml
spotinst-logos-black-small.png
webtask-small-grayscale.png
src
README.md
pom.xml
serverless.yml
service-layer
service-locator
sharding
singleton
spatial-partition
special-case
specification
state
step-builder
strangler
strategy
subclass-sandbox
table-module
template-method
thread-pool
throttling
tls
tolerant-reader
trampoline
transaction-script
twin
typeobjectpattern
unit-of-work
update-method
value-object
version-number
visitor
.all-contributorsrc
.gitignore
CONTRIBUTING.MD
LICENSE.md
PULL_REQUEST_TEMPLATE.md
README.md
checkstyle-suppressions.xml
gpl-3.0.txt
lgpl-3.0.txt
license-plugin-header-style.xml
lombok.config
mvnw
mvnw.cmd
pom.xml
java-design-patterns/serverless/etc/serverless.urm.puml

138 lines
4.9 KiB
Plaintext
Raw Normal View History

2019-12-07 18:03:49 +02:00
@startuml
package com.iluwatar.serverless.faas.api {
class LambdaInfoApiHandler {
- LOG : Logger {static}
- SUCCESS_STATUS_CODE : Integer {static}
+ LambdaInfoApiHandler()
+ handleRequest(input : Map<String, Object>, context : Context) : ApiGatewayResponse<T extends Serializable>
- headers() : Map<String, String>
- lambdaInfo(context : Context) : LambdaInfo
}
}
package com.iluwatar.serverless.baas.model {
class Address {
- addressLineOne : String
- addressLineTwo : String
- city : String
- serialVersionUID : long {static}
- state : String
- zipCode : String
+ Address()
+ equals(o : Object) : boolean
+ getAddressLineOne() : String
+ getAddressLineTwo() : String
+ getCity() : String
+ getState() : String
+ getZipCode() : String
+ hashCode() : int
+ setAddressLineOne(addressLineOne : String)
+ setAddressLineTwo(addressLineTwo : String)
+ setCity(city : String)
+ setState(state : String)
+ setZipCode(zipCode : String)
+ toString() : String
}
class Person {
- address : Address
- firstName : String
- id : String
- lastName : String
- serialVersionUID : long {static}
+ Person()
+ equals(o : Object) : boolean
+ getAddress() : Address
+ getFirstName() : String
+ getId() : String
+ getLastName() : String
+ hashCode() : int
+ setAddress(address : Address)
+ setFirstName(firstName : String)
+ setId(id : String)
+ setLastName(lastName : String)
+ toString() : String
}
}
package com.iluwatar.serverless.faas {
class ApiGatewayResponse<T extends Serializable> {
- body : String
- headers : Map<String, String>
- isBase64Encoded : Boolean
- serialVersionUID : long {static}
- statusCode : Integer
+ ApiGatewayResponse<T extends Serializable>(statusCode : Integer, body : String, headers : Map<String, String>, isBase64Encoded : Boolean)
+ getBody() : String
+ getHeaders() : Map<String, String>
+ getStatusCode() : Integer
+ isBase64Encoded() : Boolean
}
class ApiGatewayResponseBuilder<T extends Serializable> {
- OBJECT_MAPPER : ObjectMapper {static}
- body : T extends Serializable
- headers : Map<String, String>
- isBase64Encoded : Boolean
- statusCode : Integer
+ ApiGatewayResponseBuilder<T extends Serializable>()
+ base64Encoded(isBase64Encoded : Boolean) : ApiGatewayResponseBuilder<T extends Serializable>
+ body(body : T extends Serializable) : ApiGatewayResponseBuilder<T extends Serializable>
+ build() : ApiGatewayResponse<T extends Serializable>
+ headers(headers : Map<String, String>) : ApiGatewayResponseBuilder<T extends Serializable>
+ statusCode(statusCode : Integer) : ApiGatewayResponseBuilder<T extends Serializable>
}
class LambdaInfo {
- awsRequestId : String
- functionName : String
- functionVersion : String
- logGroupName : String
- logStreamName : String
- memoryLimitInMb : Integer
- serialVersionUID : long {static}
+ LambdaInfo()
+ equals(o : Object) : boolean
+ getAwsRequestId() : String
+ getFunctionName() : String
+ getFunctionVersion() : String
+ getLogGroupName() : String
+ getLogStreamName() : String
+ getMemoryLimitInMb() : Integer
+ hashCode() : int
+ setAwsRequestId(awsRequestId : String)
+ setFunctionName(functionName : String)
+ setFunctionVersion(functionVersion : String)
+ setLogGroupName(logGroupName : String)
+ setLogStreamName(logStreamName : String)
+ setMemoryLimitInMb(memoryLimitInMb : Integer)
+ toString() : String
}
}
package com.iluwatar.serverless.baas.api {
abstract class AbstractDynamoDbHandler<T extends Serializable> {
- dynamoDbMapper : DynamoDBMapper
- objectMapper : ObjectMapper
+ AbstractDynamoDbHandler<T extends Serializable>()
# apiGatewayProxyResponseEvent(statusCode : Integer, body : T extends Serializable) : APIGatewayProxyResponseEvent
# getDynamoDbMapper() : DynamoDBMapper
# getObjectMapper() : ObjectMapper
# headers() : Map<String, String>
- initAmazonDynamoDb()
+ setDynamoDbMapper(dynamoDbMapper : DynamoDBMapper)
}
class FindPersonApiHandler {
- LOG : Logger {static}
- SUCCESS_STATUS_CODE : Integer {static}
+ FindPersonApiHandler()
+ handleRequest(apiGatewayProxyRequestEvent : APIGatewayProxyRequestEvent, context : Context) : APIGatewayProxyResponseEvent
}
class SavePersonApiHandler {
- BAD_REQUEST_STATUS_CODE : Integer {static}
- CREATED_STATUS_CODE : Integer {static}
- LOG : Logger {static}
+ SavePersonApiHandler()
+ handleRequest(apiGatewayProxyRequestEvent : APIGatewayProxyRequestEvent, context : Context) : APIGatewayProxyResponseEvent
}
}
ApiGatewayResponseBuilder ..+ ApiGatewayResponse
Person --> "-address" Address
Access ..+ JsonProperty
FindPersonApiHandler --|> AbstractDynamoDbHandler
SavePersonApiHandler --|> AbstractDynamoDbHandler
@enduml