Please enable JavaScript.
Coggle requires JavaScript to display documents.
Putnam Commons - Coggle Diagram
Putnam Commons
concerns
serde should work consistently
should not slow down dev
server could go ahead
client to follow at convenience
building an application should not lead to uncertain artifacts
especially at runtime
Lambdas should be testable
outside of service layer
Ground rules
Lambda will not call a service
Lambda can call other lambdas
Lambdas will have layers as well
LLL cannot call HLL
Service can call lambdas and other services
Services will have a layered approach
Lower layer services should not call
Higher layer services
Proposal
copy-paste
interface classes
Implementation details
Clients copy the class.
only the structure
in a different package!
"Server" owns the class.
Only one server owns it.
Can have validators
Only backward compatible changes
backward incompatible
changes are exceptions.
Support using new "interface" version
we could have different interface classes
within the same flow. e.g. ScheduleRequest and LambdaServiceRequest
interface is the only contract
interface has versions
server versions are independent
Lambdas are servers and clients
services vs. applications
single implementation of an interface
class within an application
Pros
Servers can evolve separately
Clients can migrate later
Parting thoughts
are our "services" becoming monolithic
split up as schedule service?
Repository Service?
what are our services / applications
common lib for "core" classes
details
tiny biz concept classes used repeatedly
enums
classes used in many services
to build interface classes
nature
will grow in numbers in early stages,
but not much after that
Not much change
once created
pros
small sized jar
only additions no changes
always backward compatible
commons
singular commons
pros
single instance of classes
No surprises about compatibility within same version
No surprises at coding time about
class package, jar, classpath variances
cons
bottleneck for development
managing compatible versions is a challenge