Serverless NoSQL, SQL and Object Storage on AWS for serverless Java applications
This workshop is a continuous review of ready-to-use templates, examples, and patterns of serverless applications on Amazon Web Services, focusing on serverless. We will use Infrastructure as Java Code: AWS Cloud Development Kit (CDK v2) for Java and use Maven repositories to quickly build and share the code.
In this workshop, I won't implement each application from scratch, rather than walk through already prepared ready-to-use examples and templates reflecting common patterns and adjust them to more specific use cases.
All changes, attendees' requests, and suggestions will be committed to a git repository in real-time.
Basic AWS, database and Java SE / Java EE / Jakarta EE / MicroProfile experience (I will use Java concepts to explain FaaS, HA, functions, triggers, events, containers, metrics, configuration, tables, buckets and relations).
After a a short introduction to AWS basics (VPC, IAM, accounts, storage and organizations), we will cover the following templates and use cases:
- Database and storage provisioning with AWS Cloud Development Kit (CDK) v2
- Cost Driven Architectures and AWS persistence / storage
- Performance, throughput, HA / DR, compliance, latency consideration for choosing the persistence layer
- JSON, CSV, ORC, Avro, or Parquet vs binary Java serialization formats (like e.g. microstream)
- Using object storage (S3) from Lambdas and Fargate
- Querying S3 with Athena and S3 query
- Using JPA / Panache with RDS / Aurora / Aurora Serverless
- "Connection pooling" with RDS proxy and AWS Lambda
- Using DynamoDB as JSON-store
- Single table design with DynamoDB and Java
- JPA-live vs. Map-like vs. JDBC-like DynamoDB access
- Transactional data acccess with DynamoDB and S3
- Persistent data streams with Kinesis
- Change Data Capture (CDK) with DynamoDB and DynamoDB streams
- Elastic File Sytem (EFS) with AWS Lambda and ECS Fargate
- Secret management and DB authentication
- CI / CD and persistence
- ...and most popular questions, topics and approaches from airhacks.tv
In this advanced workshop I will discuss and implement cloud native Java / MicroProfile and event-driven applications on ECS Fargate and AWS Lambda. All AWS resources will be provisioned with Maven and CDK v2 Java edition. As a reference, you will get a GIT repository with all snippets and solutions, as well as prepared sample applications.
A developer laptop with pre-installed Java 11 (AWS Lambda currently only runs on Corretto 11), GIT-client, AWS CLI, and Maven 3 is required to run the examples. You can run the examples if you like, or "hack" along with me, but taking notes is perfectly viable as well.
I will use my AWS account to live deploy the applications and explain various AWS services.
I/we will spend 80% of the time in code--it also highly depends on your questions.
Feel free to contact me / register via email: workshops[-AT-] adam-bien.com