Distributed Computing

Focus On: Distributing Computing and Persistence

Seating is limited -- Register Now!

at Munich Airport

Language: English

Price: 357€ (19% MwSt. [VAT] included)

Our goal is to choose an appropriated distributed / persistence architecture and technology for the challenge.


Java EE knowledge or attendance at the Bootstrap workshop. Java EE Architecture workshop attendance or comparable skills are recommended.

Goals / Topics

CAP and FLP explained
The foundation, or dissecting the Amazon's Dynamo: Consistent Hashing, Vector Clocks, Merkle trees, Gossip and Read Repairs
NoSQL inside out: why we sometimes have to use it
JPA / RDBMS limitations and solutions
Work stealing, leasing with and without JavaEE
Persisting objects and structures with and without JPA
Impact of Java 8 and Lambdas on JavaEE architecture
Serialization, Externalization and optimizations
Binary protocols vs. HTTP and REST
Object oriented vs. record based persistence
Why home-grown persistence framework implementation is challenging (impossible?)
Introduction to Java EE with focus on persistence
JPA usecases, samples and scenarios
Column and row based stores
What is map-reduce? Samples and use cases.
Domain Driven vs. Service Oriented applications
Integration of NoSQL databases
Oracle NoSQL Database (KV Store)
Distributed and persistent caches
Infinispan (JBoss Cache)
Principles: ACID, BASE, Consistent Hashing, Copy On Write, Lazy / Eager Loading, Optimistic / Pessimistic Locking
JPA features and caveats
Queries, mapping, and relations
Typesafe vs. "fluid" schemas
Schema and database evolution
Clustering, replication, distribution and invalidation
Caching strategies and implementations
Normalization vs. denormalization and redundancies as best practice
Declarative vs. programmatic queries
Performance and memory optimizations
JPA in managed and unmanaged environments
Unit- and Integration Testing with and without mocks
Persistence Patterns
Interesting, but proprietary vendor extensions
New Java EE 7 Features
...prepare some questions!

In this advanced workshop we will code the samples, not a whole end-to-end application. I will also prepare some samples in advance. As a reference, you will get a GIT repository with all samples and solutions, as well as prepared sample applications. Also a GIT repository is going to be used throughout our course, so you will be able to synchronize your projects at any time. (ZIP snapshots will be available as well in nearly real time:-))

You will need a modern developer laptop with pre-installed JDK 1.7, GIT-client, and ideally Maven 3 to get the most from this workshop. We will install the rest of the environment together in the first 10 minutes.

We will spend 60% of the time with code and the remaining part discussing best practices, hacks and workarounds.

Feel free to contact me / register via email: workshops[-AT-]adam-bien.com