Course intended for:

The training is intended for designers and programmers of Web applications, who would like to develop their skills by mastering building of high availability and scalability applications.

Course objective:

The trainers will discuss in detail various architectures of distributed systems. The participants will get familiar with open technologies, allowing for building of distributed applications resistant to failures. They will learn how to design the application architecture to make sure that the capability can be easily increased by adding subsequent servers. Strong emphasis will be put on the aspects of scalability of databases.

Course strengths:

After the training, the participants will be ready to design high-availability Web applications and modify the existing applications to make them scalable and failure resistant.


The participants are expected to have the Java Web application development skills (to be learned at the course J/WEB1 and J/WEB2), to be familiar with Spring-Framework and JPA or Hibernate.

Course parameters:

2*8 hours (2*7 net hours) of lectures and workshops (with a visible emphasis on workshops).

Group size: no more than 8-10 participants.

Course curriculum

  1. Introduction – various cluster architectures and their impact on reliability and scalability; the CAP theorem

  2. Ensuring reliability and scalability of the data layer:

    1. Hot-standby and stream replication – the example of PostgreSQL

    2. Multi-master replication – the example of HA-JDBC + PostgreSQL

    3. Master-slave replication – the example of Slony-I + PostgreSQL

    4. Introduction to Apache Cassandra

  3. Data buffering

    1. Configuration of distributed cache (memcached or ehcache)

    2. Buffering and tuning of GC in JVM, data storage outside stack

    3. Buffering in databases (the example of PostgreSQL and/or Cassandra)

  4. Scalability and reliability of WEB layer:

    1. Load-balancing – the example of HA-Proxy

    2. Session replication and load-balancing of HTTP in Apache Tomcat

Any questions?

* Required.

Phone +48 22 2035600
Fax +48 22 2035601