MicroStream Advanced


Event Details


Course Overview

In this course, we will deep-dive into developing ultra-fast in-memory database apps and microservices with MicroStream. The MicroStream Advanced training is based on the MicroStream Fundamental training.

MicroStream is the very first Java persistence (engine) that enables you to persist any Java object-graph or single subgraphs into any data storage natively. This means any object graph can be persisted as it is in RAM. The MicroStream approach is fundamentally different from the traditional RDBMS/NoSQL DB-server programming model:

  • only 1 data model – just POJOs,
  • no more dealing with DB-specific data models (tables, column-store, JSON, key-value, DB-specific graphs/objects) – which are actually incompatible with object-graphs we use in Java
  • no more expensive mappings at all,
  • no DB-specific query language, no more classic selects, just using getter.

Object-graphs in RAM is used as an incredibly fast pure Java in-memory database which is a kind of multi-model data structure because ANY Java type can be used such as collections. Queries: By using Java Streams API, object graphs can be searched in microsecond query time – up to 1000x faster than comparable traditional database query-time and even up to 100x faster than reading data directly from a local cache. An additional caching framework such as EHCache is not needed anymore. The end result is an ultra-fast pure Java in-memory database app or microservice having its own superfast persistence. MicroStream itself is a tiny Java API that can be included in any Java project easily via Maven. It runs on the server, on the desktop, within containers, on GraalVM native images as well as on Android. MicroStream is also part of the popular microservice framework Helidon – https://helidon.io/ – powered by Oracle.

After this course, you will be able to use MicroStream in business-critical projects productively.

The course consists mainly of hands on projects which are also available in a GitHub Repository.

Who should attend

Developers and software architects who want to develop high-performance database apps and microservices with Java or any JVM-language as well as apps running on Android devices. Also trainers and consultants.

  • Java developers
  • Developers using any JVM-language
  • Android developers
  • Software architects
  • Java trainers
  • Technical consultants and sales engineers
Prerequisites
  • Proficiency in using a Java IDE such as Eclipse, IntelliJ, or Netbeans
  • Fundamental knowledge in Java
  • Proficiency in object-oriented programming
  • Experience with Maven
  • Experience with Git
  • MicroStream Fundamentals training
Course Objectives

By the end of the course, you should be able to meet the following objectives:

  • Creating an advanced configuration of the MicroStream storage
  • Deeper knowledge about advanced topics like “Housekeeping” or “Storage Channels”
  • Creating proper data structures for eager and lazy data handling
  • Usage or transactions and rollbacks with MicroStream
  • Exception handling with MicroStream
  • Extended usage of LazyLoading with Apache Lucene
  • Concurrency handling within a MicroStream application
  • MicroStream customizations
    • Custom type handler
    • Custom class loader
    • Custom LegacyTypeHandler
    • Custom store behavior
  • Different store target like AWS S3 or MySQL
  • Introduction to the MicroStream license model

Course Content

    • Summary of the MicroStream Fundamentals training
      • Project exercise for warm up
      • Performance Demo
    • Advanced project / MicroStream storage configuration
      • Storage file names
      • Usage of channels
      • Usage and configuration of housekeeping with example
    • Advanced storing technics
      • Eager and lazy storing
      • Transactions and rollbacks
      • Exception handling best practices
      • Example project with Apache Lucene and lazy loading
    • Handing concurrencies in MircoStream projects
      • Creating hands on project with better object model
      • Hands on project for best practices
    • Customization
      • Hands on Project for:
        • Custom type handler
        • Custom class loader
        • Custom LegyTypeHandler
        • Custom store behavior
    • Different storage targets
      • Hands on project for an AWS S3 bucket storage
      • Hands on project for a MySQL database storage
    • MicroStream license model
    • MicroStream question and answers