How aws/aws-lambda-java-libs works
These are AWS Lambda Java support libraries: the principal runtime path fetches an invocation, resolves and invokes user handler code, serializes typed payloads, then reports a response or error. Separate libraries provide event models and SDK transformations, logging integration, serialization support, and an optional profiling extension. Runtime source excerpts are partial, so links for documented but unsampled capabilities are limited to relationships stated in the README.
Main entry points: EventHandlerLoader.java Handler loader · LambdaRuntimeApiClientImpl.java Runtime API client · AWSLambda.java Runtime entrypoint · RequestHandler.java Handler interfaces
Components 18
Runtime execution
- Runtime entrypoint
aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java - Runtime API client
aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/LambdaRuntimeApiClientImpl.java - Handler loader
aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java - Handler interfaces
aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/RequestHandler.java - Invocation context
aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java
Events and serialization
- POJO serialization
aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/PojoSerializer.java - Event models
aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events - Event serializers
aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java
Logging and profiling
- Lambda logging API
aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/LambdaLogger.java - Runtime logging
aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging - Log4j2 adapter
aws-lambda-java-log4j2/src/main/java/com/amazonaws/services/lambda/runtime/log4j2/LambdaAppender.java - Profiler extension
experimental/aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/ExtensionMain.java - Profile uploader
experimental/aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/S3Manager.java
SDK integrations
- DynamoDB transformers
aws-lambda-java-events-sdk-transformer/src/main/java/com/amazonaws/services/lambda/runtime/events/transformers
Other components
- Lambda platform
- Function developer
- async-profiler
- Amazon S3
Connections 19
- Lambda platform → Runtime API client: serves invocations
- Runtime entrypoint → Runtime API client: fetches invocation
- Runtime entrypoint → Handler loader: resolves handler
- Handler loader → POJO serialization: serializes payloads
- Handler loader → Handler interfaces: invokes handler
- Handler loader → Invocation context: provides context
- Handler interfaces → Function developer: implemented by
- Runtime entrypoint → Runtime API client: reports result
- Runtime API client → Lambda platform: posts response or error
- POJO serialization → Event serializers: uses event mappings
- Event models → Function developer: typed event inputs
- Function developer → DynamoDB transformers: may transform events
- DynamoDB transformers → Event models: converts event models
- Handler interfaces → Lambda logging API: exposes logging
- Runtime logging → Lambda platform: sends telemetry
- Log4j2 adapter → Runtime logging: adapts logging
- Profiler extension → async-profiler: collects profiles
- Profiler extension → Profile uploader: uploads profiles
- Profile uploader → Amazon S3: stores profiles