Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP BXMSDOC-7153: New Getting started assembly for Kogito microservices #59

Merged
merged 7 commits into from
May 7, 2021

Conversation

[role="_abstract"]
The primary Java frameworks that {KOGITO} microservices support are Quarkus and Spring Boot.

https://quarkus.io/[Quarkus] is a Kubernetes-native Java framework with a container-first approach to building Java applications, especially for Java virtual machines (JVMs) such as GraalVM and HotSpot. Quarkus optimizes Java specifically for Kubernetes by reducing the size of both the Java application and container image footprint, eliminating some of the Java programming workload from previous generations, and reducing the amount of memory required to run those images.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor: GraalVM is not a JVM, please rephrase accordingly.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also say OpenJDK HotSpot instead of just HotSpot

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

. In the `src/main/resources` folder of your example project, instead of using a DMN file, add the following `PersonRules.drl` file:
+
--
.Example `PersonRules` DRL file

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Differently from DMN, this DRL file is not sufficient to have an automatically generated microservice exposing a REST endpoint. I'm not sure if this was the intent of this section, so please confirm if this is ok.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the following query to the drl file:
query persons
$p : /person[ adult ]

Copy link

@csherrar csherrar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions and questions, otherwise great job, Heena!


{KOGITO} microservices are designed to run and scale on a cloud infrastructure. You can use {KOGITO} microservices in {PRODUCT} with the latest cloud-based technologies, such as Quarkus, to increase start times and instant scaling on container application platforms, such as {OPENSHIFT}.

For example, {KOGITO} microservices are compatible with the following technologies:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style]

Rather than using "for example" maybe rephrasing as below?

s/For example, {KOGITO} microservices are compatible with the following technologies:/{KOGITO} microservices are compatible with the following technologies:/Technologies that are compatible with {KOGITO} microservices include:


For example, {KOGITO} microservices are compatible with the following technologies:

* *{OPENSHIFT}*, based on Kubernetes, is the target platform for building and managing containerized applications.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Comma and "target" appear out of place here, maybe rephrase as below?

s/, based on Kubernetes, is the target platform for building and managing containerized applications./is based on Kubernetes, and is the platform for building and managing containerized applications.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

For example, {KOGITO} microservices are compatible with the following technologies:

* *{OPENSHIFT}*, based on Kubernetes, is the target platform for building and managing containerized applications.
* *Quarkus* is native Java stack for Kubernetes that you can use to build applications with {KOGITO} microservices.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Add indefinite article "a":

s/is native Java stack for Kubernetes that you can use to build applications with {KOGITO} microservices./is a native Java stack for Kubernetes that you can use to build applications with {KOGITO} microservices.

[technical] I am unsure if the wording is correct. It suggests that {KOGITO} microservices used by Quarkus to build applications. Is this correct?

s/* Quarkus is native Java stack for Kubernetes that you can use to build applications with {KOGITO} microservices./* Quarkus is a native Java stack for Kubernetes which you can use to build applications that use {KOGITO} microservices.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, if it confusing, then I am changing it to:

Quarkus is a native Java stack for Kubernetes that you can use to build applications, using {KOGITO} microservices.


* *{OPENSHIFT}*, based on Kubernetes, is the target platform for building and managing containerized applications.
* *Quarkus* is native Java stack for Kubernetes that you can use to build applications with {KOGITO} microservices.
* *Spring Boot* is also supported with {KOGITO} so that you can use the Spring Framework with {PRODUCT}.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Remove "also" and change "with" with "by".
[technical and style] Improve parallelism by adding brief description of Spring Boot as per OpenShift and Quarkus.

s/* Spring Boot is also supported with {KOGITO} so that you can use the Spring Framework with {PRODUCT}./* Spring Boot is (explanation} that you can use to configure Spring Framework with {PRODUCT}.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing it to:

Spring Boot is an application framework that you can use to configure Spring Framework with {PRODUCT}.

[id="con-kogito-dmn-modelers_{context}"]
= DMN modelers for {KOGITO} microservices

{PRODUCT} provides the following extensions or applications that you can use to design Decision Model and Notation (DMN) decision models for your {KOGITO} microservices using graphical modelers.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Avoid anthropomorphism and referring to a list that is not immediately after the containing paragraph.

s/{PRODUCT} provides the following extensions or applications that you can use to design Decision Model and Notation (DMN) decision models for your {KOGITO} microservices using graphical modelers./There are {PRODUCT} extensions and applications with graphical modelers that you can use to design Decision Model and Notation (DMN) decision models for your {KOGITO} microservices.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, changing the sentence as:

{PRODUCT} provides extensions or applications that you can use to design Decision Model and Notation (DMN) decision models for your {KOGITO} microservices using graphical modelers.


This example procedure uses curl commands for convenience.

.Procedure
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] What phrasing is normally used? "use any of the following" "perform any of the following tasks"


NOTE: On Spring Boot, you might need to modify how your application exposes API endpoints in order for these example requests to function. For more information, see the `README` file included in the example Spring Boot project that you created for this tutorial.

* Add an adult person:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Add "to":

s/Add an adult person:/To add an adult person:

[id="proc-kogito-microservice-running-app_{context}"]
= Running a {KOGITO} microservice

After you design the business decisions for your {KOGITO} microservice, you can run your Quarkus or Spring Boot application in one of the following modes:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Add "a":

s/Spring Boot application/a Spring Boot application

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sentence contains "your"
your Quarkus or Spring Boot application.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right.


.Procedure
. In a web browser, go to the https://kiegroup.github.io/kogito-online/#/download[Business Modeler Hub] download page, select the relevant *Operating System* option, and click *Download*.
. Extract the downloaded `business_modeler_hub_preview___RELEASE__` binary file to a local directory.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] Is business_modeler_hub_preview___RELEASE__ correct with the additional underscores? Can the version attribute be used?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are not using attribute here, this is the original file name with Release in italics to show that release version needs to be added by the user.

$ ./Business\ Modeler\ Hub\ Preview-__RELEASE__/Business\ Modeler\ Hub\ Preview
----

The *Business Modeler Hub* opens in a new window.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[style] This note can be moved to the step by adding a "+".

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction, This is wrapped with "--" so it may not be needed.


https://spring.io/projects/spring-boot[Spring Boot] is a Java-based framework for building standalone production-ready Spring applications. Spring Boot enables you to develop Spring applications with minimal configurations and without an entire Spring configuration setup.

For {KOGITO} microservices, Spring Boot is supported for developers who need to use {PRODUCT} in an existing Spring Framework environment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say that the environment is related to the running application; developers can write spring boot applications and deploy them in different environments. That said, I don't see any problem with "environment" in its singular form.

@hmanwani-rh hmanwani-rh merged commit ae67a4c into BXMSDOC-7581-master-final May 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants