Full-day workshop:

Designing High-Performance, Scalable and Resilient Applications

Why this workshop?

This workshop outlines the key concepts, principles, and approaches used to design and implement applications where high-performance, scalability, and resiliency are first-class quality attributes, three essential goals of many modern application architectures.

Most of these architectures are (in general) distributed and they combine different concepts and styles to achieve the highest effectiveness. It is fundamentally necessary to understand for which class of problems what architectural approaches we can leverage during the design phase and how we can implement them. The lack of a proper design leads to additional complexity, over-engineering, difficulties in extending or adding new functionalities, and potentially generates project failures.

 

For a better understanding, most of the concepts are exemplified using a distributed application implemented in Java, based on Spring Boot, and run inside multiple Docker containers, so that the attendees could easily relate the theory to the practice and further apply some of these tactics in their projects.

Unconference sessions

Why attend this workshop

What are the different architectural tactics, patterns, and styles to create applications focused on high-performance, scalability, and resiliency

How to choose between (or combine) these approaches to cope with different loads and failures with minimal or no downtime.

What are the pros and cons of each approach, when should be used, and what are the consequences?

The mindset of creating modern distributed architectures.

And you'll be able to:

use an incremental approach to create an evolutionary architecture (i.e. architectural design) starting from the business requirements.

complement the architectural design with a proper source code implementation (and a few architectural diagrams).

Who is it for?

software developers with hands-on experience and a taste for architectural design

technical leaders or software/solution architects

any enthusiastic with a technical background or passionate about technology

What will you learn?

Modern applications capabilities (modularity, resiliency, elasticity and performance)

Modularity as a first-class citizen:

  1. Pros and cons, when to use, problems they might (or not) solve
  2. Decomposition
  3. Data management (e.g., shared-nothing approach)
  4. Synchronous communication model (RESTful over HTTP)

Improve the overall system resiliency

  • Circuit Breaker
  • Bulkhead

Design for scalability and high-performance

  • Horizontal scalability with service discovery and load balancer (or router)
  • Caching (e.g., local/embedded, distributed)
  • Asynchronous communication model (e.g., queue/topic, gRPC, WebSocket)
  • Event-driven architecture
    1. Pros and cons, when to use, problems they might (or not) solve
    2. Event structure and schema
    3. Event vs. command
    4. Event-carried state transfer
    5. Change data capture
  • Reactive systems
    1. Reactive principles
    2. Reactive systems vs. reactive programming
  • Assess the current architecture from a reactive system perspective

Advanced performance optimization techniques at the application source code level

  • native compilation
  • asynchronous logging
  • marshaling/unmarshaling
  • memory-mapped files
  • minimizing the object allocation rates

Who is the trainer?

IONUȚ BALOȘIN

Software Architect

Raiffeisen Bank International

Ionuț is a software architect working for Raiffeisen Bank International in Vienna. He is also an independent technical trainer, security champion, and blogger, and regularly speaks at major software development conferences and meetups around the world, delivering presentations, training sessions, and workshops. He has a vast technical background gained during almost 15 years of software development in a wide variety of business applications. He is actively involved in developing production-ready systems and this real-life experience is the basis for his presentations, training, and workshop topics, mixed uniquely and efficiently. 

He is also known as a performance guy particularly interested in Compilers. His previous work on performance benchmarking raised internal interest across a few teams from big companies like Twitter, OracleLabs, Azul, and IBM.

Outside of work, Ionut is passionate about traveling and playing the piano.

You can find more details about Ionut, his training catalog, his talks, and his articles on ionutbalosin.com or you can follow him on Twitter, and LinkedIn.

Stay up to date

* indicates required

We use Mailchimp as our marketing platform. By clicking above to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.

You can change your mind at any time by clicking the unsubscribe link in the footer of any email you receive from us, or by contacting us at [email protected]