Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vert.x Simplicidade que nos traz FELICIDADE

Vert.x Simplicidade que nos traz FELICIDADE

In this talk, I'll explain a little bit how vert.x helps developers to write simple and efficient code and how it is important in the microservices World.
I'll talk about API First and how we can use vert.x to achieve that.
Also, I'll talk about OpenID Connect and other important stuff related to microservices

Transcript

  1. vert.X simplicidade Que nos traz FELICIDADE

  2. Agenda Vert.x Concepts Reducing Complexity Open API -> OpenID JDBC

    Async Metrics Distributed Tracing
  3. Vert.x Concepts

  4. Vert.x Verticles Verticles are chunks of code that get deployed

    and run by Vert.x. A Vert.x instance maintains N event loop threads (where N by default is core*2) by default. Worker - Thread Pool in general for blocking code Standard - Event Loop
  5. Vert.x Event Loop

  6. https://github.com/vert-x3/vertx-examples/blob/4.x/web-examples/src/main/java/io/vertx/example/web/helloworld/Server.java

  7. Vert.x Event Bus Is the nervous system of Vert.x. The

    event bus allows different parts of your application to communicate with each other, and whether they’re in the same Vert.x instance, or in a different Vert.x instance.
  8. https://github.com/vert-x3/vertx-examples/blob/4.x/web-examples/src/main/java/io/vertx/example/web/vertxbus/amd/Server.java

  9. Reducing complexity

  10. None
  11. Lots of Modules Different integrations Models Design Patterns is very

    important DDD HExagonal Architecture
  12. Applications scopes are reduced Many Integrations Contracts will be very

    helpful
  13. None
  14. The contract is our “new” abstraction

  15. An API-First approach means that for any given development project,

    your APIs are treated as first-class citizens. API First
  16. OVERVIEW DIAGRAM

  17. None
  18. Supports it???? How

  19. None
  20. None
  21. How about Vert.x and code complexity??? 1. Easy way to

    implement OpenAPI endpoints 2. Validate input data using OpenAPI definition 3. Handlers is totally Single Response Principle (SRP) 4. SQL Client in Vert.x is asynchronous 5. Avoid callback Vert.x 4 encourages Futures, sometimes called “Futurisation”
  22. APIs is very important to achieve business goals. Security should

    be first-class citizen in APIs. API Security
  23. None
  24. Supports it???? How

  25. How about vert.x supports OpenId 1. Auth JWT 2. Configure

    issuer (OP) in configuration file 3. Download keys from /certs obtained from .well-know endpoints 4. Easy way to achieve token verifier
  26. None
  27. None
  28. JDBC asynchronous YES

  29. None
  30. None
  31. Features 1. Supports sql-templates 2. Use annotations 3. Add dependency

    to process annotations 4. It is asynchronous
  32. Metrics

  33. How about vert.x and Metrics 1. You can use micrometer

    metrics 2. Add prometheus a metric collector 3. Metrics from HTTP Endpoints are out-of-box 4. Easy way to expose these metrics
  34. Supports it???? How

  35. None
  36. None
  37. None
  38. None
  39. Distributed Tracing

  40. How about vert.x and Distributed Tracing 1. It Supports OpenTracing

    and Zipkin 2. Configuration are done using environment 3. You can choose the tracing policy PROPAGATE, ALWAYS,and IGNORE 4. You can enable trace in vert.x Event Bus
  41. Supports it???? How

  42. None
  43. None
  44. None
  45. Read Vert.x configuration from json, env and others. Supports Redis

    Clients in Asynchronous Fashion Support graphQL endpoints in your Vert.x Services OTHER Features Config REDIS graphQL Implementation of the circuit-breaker pattern to mitigate failures. This component provides a Kafka client for reading and sending messages from/to an Apache Kafka cluster. A Vert.x client allowing applications to interact with a MongoDB instance, whether that’s saving, retrieving, searching, or deleting documents Circuit Breaker Kafka MongoDB
  46. conclusions 01 02 03 04 Think about Software Architecture and

    choose carefully Vert.x support microservices “standards” metrics, tracing…. Use contracts to improve communicati on between teams It is not a silver bullet, think in another option in your toolbox
  47. None
  48. CREDITS: This presentation template was created by Slidesgo, including icons

    by Flaticon, and infographics & images by Freepik. THANKS! Do you have any questions? claudioed.oliveira@gmail.com @claudioed https://claudioed.tech Github https://github.com/claudioed/tdc-inn-users https://github.com/claudioed/tdc-inn-chat https://github.com/claudioed/tdc-inn-police-man