Two Quarkus Books for Christmas

It’s been a while since I haven’t blogged… but that’s because I was busy writing two books on Quarkus!

When Quarkus was announced in November 2018 I was very enthusiastic with what I saw. It was the beginning of Quarkus, but it was already promoting developer’s joy (hot reload, easy configuration, etc.), Cloud-Native, speed, small… but what I liked the most was the fact that it was supporting MicroProfile and the well-known Java Enterprise ecosystem (JAX-RS, CDI, Hibernate, Bean Validation, etc.). I could reuse my skills within this brand new and shinny Java toolkit.

I started having a look at it, wrote a couple of blog post about how to configure Quarkus, did a proof of concept for a customer, created the Super Heroes Workshop (with Emmanuel Bernard and Clement Escoffier) that we gave for a full day at Voxxed Microservices 2019. Then, the “locked-down” locked me down for a few months, so I decided to write two books on Quarkus.

Understanding Quarkus (350 pages) is about defining Quarkus, its architecture and its ecosystem. After a few chapters introducing Quarkus, you get 8 chapters covering:

  • Quarkus Core: CDI, Configuration, Quarkus Profiles, Logging, Application Life cycle
  • Data: Bean Validation, JPA, JTA, Datasource, Hibernate ORM with Panache
  • HTTP Microservices: JAX-RS, OpenAPI, JSON Binding and Processing
  • Communication and Fault-Tolerance: CORS, MicroProfile REST Client, MicroProfile Fault-Tolerance
  • Event-Driven Microservices: Reactive Programming with Mutiny, Reactive Messaging
  • Observability: MicroProfile Health Check and MicroProfile Metrics
  • Cloud Native: Packaging, GraalVM, Docker and Kubernetes
  • Tests: Quarkus Test, Native Tests, Mocking, Test Profiles

Practising Quarkus (200 pages) is very hands-on (and in fact, is inspired by the Super Heroes workshop). It explains a few concepts, but not much. It’s all about developing, testing, packaging, and deploying a resilient microservice architecture. You will go step by step, from setting up your environment, developing microservices, making them communicate with each other, etc., to compiling them with GraalVM and packaging them with Docker.

So if you don’t know Quarkus, start reading Understanding Quarkus and then dive into coding with Practising Quarkus. If you already know it, then Practising Quarkus is the way to go.

Writing a book is a hell of a work and, as usual, you need people to review your work, give you some inputs, correct you if you’re wrong and put you in the right track. So I would like to thank the amazing review team who was involved in these books: Emmanuel Bernard, Clement Escoffier, Youness Teimouri, Mike François, Georgios Andrianakis, Roberto Cortez, Stéphane Épardaud, George Gastaldi and Nicolas Martignole. And thanks to Gary Branigan who reviewed the English grammar and spelling, and the Quarkus, Asciidoctor, PlantUML, Intellij IDEA communities for constant help.

Oh, and did I say that these books are freely available on Red Hat portal? Then, they will stay at Red Hat but I will also publish them on Kindle under my AGoncal Fascicle brand.

Enjoy Christmas reading Quarkus books.

Categories: Books, Java

Tagged as: ,

1 Comment »

  1. Hello Antonio,

    I think there is a small error in BookResourceTest#shouldAddAnItem (quarkus-fascicle-practising-v1.pdf, page 86, Listing 52). I had to update the book creation for the test to pass:

    Book book = new Book();
    book.title = DEFAULT_TITLE;
    book.isbn13 = MOCK_ISBN_13; // added
    book.isbn10 = MOCK_ISBN_10; // added
    book.author = DEFAULT_AUTHOR;

    otherwise I would get an assertion error:
    java.lang.AssertionError: 1 expectation failed.
    JSON path isbn13 doesn’t match.
    Expected: is “Isbn 13”

    Very nice work anyhow. Thanks for sharing this with us!

    Fabrice

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s