Single Table Design with Java on AWS

Mapping Java Objects to DynamoDB (NoSQL)

Seating is limited -- Register Now!

at Live, virtual workshop

Language: English

Price: 150€ (+19% MwSt. [VAT])

Persisting Java Objects to DynamoDB and Apache Cassandra

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.

Prerequisites

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).

Topics

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
  • Object storage vs. NoSQL
  • Cost Driven Architectures and AWS persistence / storage
  • DynamoDB / Using Java 21+ / MicroProfile / Jakarta EE
  • Authentication and Authorization
  • DynamoDB object and "structure" mapping
  • Modelling relations with Single Table Design and DynamoDB
  • Designing the data model
  • Identifying access patterns
  • Choosing partition and sort keys
  • Handling relationships between entities
  • Implementing CRUD operations
  • Querying and scanning the table
  • Using secondary indexes
  • LSIs vs. GSIs
  • Apache Cassandra--a viable DynamoDB alternative
  • Single table design with DynamoDB and Java
  • DynamoDB with Data Oriented Programming and Java 21+
  • JPA-like vs. Map-like vs. JDBC-like DynamoDB access
  • Transactional data acccess with DynamoDB
  • Change Data Capture (CDC) with DynamoDB and DynamoDB streams
  • Architecting data access for serverless applications
  • Mapping 1:n, n:1, 1:n, n:m, composite relations with NoSQL
  • Implementing queries with NoSQL
  • Handling complex queries
  • Implementing transactions
  • Optimizing for performance
  • ...and most popular questions, topics and approaches from airhacks.tv

In this advanced workshop I will discuss and implement cloud native Java / MicroProfile with AWS Lambda and ECS Fargate (containers). 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 21 (AWS Lambda currently only runs on Corretto 21), 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.

Environment requirements / prerequisites.

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

Registration

Please ask your finance department for an invoice address. The address below will appear on the invoice.