kaldesai commented on code in PR #604:
URL: 
https://github.com/apache/incubator-kie-kogito-docs/pull/604#discussion_r1542485743


##########
serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/getting-started/create-your-first-workflow-project.adoc:
##########
@@ -0,0 +1,187 @@
+= Creating a Quarkus Workflow Project
+
+As a developer, you can use {product_name} to create an application and in 
this guide we want to explore different options and provide an overview of 
available tools that can help in that purpose.
+
+We will also use Quarkus dev mode for iterative development and testing.
+
+As a common application development, you have different phases: Analysis, 
Development and Deployment. Let's explore in detail each phase and what 
{product_name} provides in each case:
+
+* <<proc-analysis-phase,Analysis and taking decisions phase>>
+** <<proc-adding-persistence,Adding persistence?>>
+** <<proc-adding-eventing,Adding eventing?>>
+** <<proc-adding-data-index-service,Adding Data Index service?>>
+** <<proc-adding-job-service,Adding Job service?>>
+
+* <<proc-development-phase,Development phase>>
+** <<proc-boostrapping-the-project,Bootstrapping a project, Creating a 
workflow, Running your workflow application and Testing your workflow 
application >>
+** <<proc-logging-configuration,How to configure logging>>
+** <<proc-dev-ui, Refine your workflow testing with Dev-UI>>
+* <<proc-deployment-phase,Deployment phase>>
+
+
+.Prerequisites
+* You have setup your environment according to the 
xref:getting-started/preparing-environment.adoc#proc-advanced-local-environment-setup[advanced
 environment setup] guide.
+
+For more information about the tooling and the required dependencies, see 
xref:getting-started/getting-familiar-with-our-tooling.adoc[Getting familiar 
with {product_name} tooling].
+
+ifeval::["{kogito_version_redhat}" != ""]
+include::../../pages/_common-content/downstream-project-setup-instructions.adoc[]
+endif::[]
+
+
+[[proc-analysis-phase]]
+== Analysis phase
+
+Start by analyzing the requirements for your {product_name} application. This 
will enable you to make decisions about persistence, eventing, security, 
topology and component interaction needs of your application.
+
+[[proc-adding-persistence]]
+=== Adding persistence?
+Service orchestration is a relevant use case regarding the rise of 
microservices and event driven architectures. These architectures focus on 
communication between services and there is always the need to coordinate that 
communication without the persistence addition requirement.
+
+{product_name} applications use an in-memory persistence by default. This 
makes all the {workflow_instance} information volatile upon runtime restarts. 
In case of this guide, when the workflow runtime is restarted.
+As a developer, you need to decide if there is a need to ensure that your 
workflow instances remain consistent in the context.
+
+If your application requires persistence, you need to decide what kind of 
persistence is needed and configure it properly.
+Follow the {product_name} 
xref:use-cases/advanced-developer-use-cases/persistence/persistence-core-concepts.adoc[persistence
 guide] for more information.
+
+You can find more information about how to create an application which writes 
to and reads from a database following 
link:https://quarkus.io/guides/getting-started-dev-services[Your second Quarkus 
application] guide.
+
+[[proc-adding-eventing]]
+=== Adding eventing?
+
+Quarkus unifies reactive and imperative programming you can find more 
information about this in the 
link:https://quarkus.io/guides/quarkus-reactive-architecture[Quarkus Reactive 
Architecture] guide.
+
+In this phase we need to decide how the Event-Driven Architecture needs to be 
added to our project.
+As an event-driven architecture, it uses events to trigger and communicate 
between services. It allows decoupled applications to asynchronously publish 
and subscribe to events through an event broker. The event-driven architecture 
is a method of developing systems that allows information to flow in real time 
between applications, microservices, and connected devices.
+
+This means that applications and devices do not need to know where they are 
sending information or where the information they are consuming comes from.
+
+If we choose to add eventing, {product_name} supports different options like:
+
+* *Kafka Connector* for Reactive Messaging. See 
xref:use-cases/advanced-developer-use-cases/event-orchestration/consume-producing-events-with-kafka.adoc[]
 for more details.
+* *Knative* eventing.  See 
xref:use-cases/advanced-developer-use-cases/event-orchestration/consume-produce-events-with-knative-eventing.adoc[]
 for more details.
+
+You need to choose how the different project components will communicate and 
what kind of communication is needed. More details about 
link:https://quarkus.io/guides/quarkus-reactive-architecture#quarkus-extensions-enabling-reactive[Quarkus
 Extensions enabling Reactive]
+
+[[proc-adding-data-index-service]]
+=== Adding Data Index service?
+
+The {data_index_ref} service is able to index the {workflow_instance} 
information using GraphQL. This is very useful if you want to consume the 
workflow data in different applications through a GraphQL endpoint.
+For more information about {data_index_ref} service see 
xref:data-index/data-index-core-concepts.adoc[] for more details.
+
+If you decide to index the data, you need to select how to integrate the 
{data_index_ref} service in your topology. Here are some options:
+
+* You can choose to have the data indexation service integrated directly in 
our application using the different 
xref:use-cases/advanced-developer-use-cases/data-index/data-index-quarkus-extension.adoc[].
+This allows you to use the same data source as the application persistence 
uses, without the need of extra service deployment.
+** *{data_index_ref} persistence extension*. That persists the indexed data 
directly at the application data source.
+** *{data_index_ref} extension*. That persist directly the indexed data at the 
application data source and also provide the GraphQL endpoint to interact with 
the persisted data.
+* Another option is to have the Data Index as a standalone service. In this 
case, you need to properly configure the communication between your 
{product_name} application and the {data_index_ref} service. More details in 
xref:data-index/data-index-service.adoc[]
+
+
+[[proc-adding-job-service]]
+=== Adding Job service?
+
+The Job Service facilitates the scheduled execution of tasks in a cloud 
environment. If any of your {product_name} workflow needs some kind of 
temporary schedule, you will need to integrate the Job service.
+
+If you decide to use Job Service, you need to select how to integrate the 
service in your topology. Here are some options:
+
+* You can choose to have the Job service integrated directly in your 
{product_name} Quarkus application using 
xref:use-cases/advanced-developer-use-cases/job-service/quarkus-extensions.adoc[]
 guide.
+* Explore how to integrate the Job service and define the interaction with 
your {product_name} application workflows. You can find more Job service 
related details in xref:job-services/core-concepts.adoc[Job Service Core 
concepts].
+
+[[proc-development-phase]]
+== Development phase
+
+Once you decided which components you need to integrate into {product_name} 
project, you can jump into the workflow development phase.

Review Comment:
   ```suggestion
   Once you decide which components you must integrate into {product_name} 
project, you can jump into the workflow development phase.
   ```



##########
serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/getting-started/create-your-first-workflow-project.adoc:
##########
@@ -0,0 +1,187 @@
+= Creating a Quarkus Workflow Project
+
+As a developer, you can use {product_name} to create an application and in 
this guide we want to explore different options and provide an overview of 
available tools that can help in that purpose.
+
+We will also use Quarkus dev mode for iterative development and testing.
+
+As a common application development, you have different phases: Analysis, 
Development and Deployment. Let's explore in detail each phase and what 
{product_name} provides in each case:
+
+* <<proc-analysis-phase,Analysis and taking decisions phase>>
+** <<proc-adding-persistence,Adding persistence?>>
+** <<proc-adding-eventing,Adding eventing?>>
+** <<proc-adding-data-index-service,Adding Data Index service?>>
+** <<proc-adding-job-service,Adding Job service?>>
+
+* <<proc-development-phase,Development phase>>
+** <<proc-boostrapping-the-project,Bootstrapping a project, Creating a 
workflow, Running your workflow application and Testing your workflow 
application >>
+** <<proc-logging-configuration,How to configure logging>>
+** <<proc-dev-ui, Refine your workflow testing with Dev-UI>>
+* <<proc-deployment-phase,Deployment phase>>
+
+
+.Prerequisites
+* You have setup your environment according to the 
xref:getting-started/preparing-environment.adoc#proc-advanced-local-environment-setup[advanced
 environment setup] guide.
+
+For more information about the tooling and the required dependencies, see 
xref:getting-started/getting-familiar-with-our-tooling.adoc[Getting familiar 
with {product_name} tooling].
+
+ifeval::["{kogito_version_redhat}" != ""]
+include::../../pages/_common-content/downstream-project-setup-instructions.adoc[]
+endif::[]
+
+
+[[proc-analysis-phase]]
+== Analysis phase
+
+Start by analyzing the requirements for your {product_name} application. This 
will enable you to make decisions about persistence, eventing, security, 
topology and component interaction needs of your application.
+
+[[proc-adding-persistence]]
+=== Adding persistence?
+Service orchestration is a relevant use case regarding the rise of 
microservices and event driven architectures. These architectures focus on 
communication between services and there is always the need to coordinate that 
communication without the persistence addition requirement.
+
+{product_name} applications use an in-memory persistence by default. This 
makes all the {workflow_instance} information volatile upon runtime restarts. 
In case of this guide, when the workflow runtime is restarted.
+As a developer, you need to decide if there is a need to ensure that your 
workflow instances remain consistent in the context.
+
+If your application requires persistence, you need to decide what kind of 
persistence is needed and configure it properly.
+Follow the {product_name} 
xref:use-cases/advanced-developer-use-cases/persistence/persistence-core-concepts.adoc[persistence
 guide] for more information.
+
+You can find more information about how to create an application which writes 
to and reads from a database following 
link:https://quarkus.io/guides/getting-started-dev-services[Your second Quarkus 
application] guide.
+
+[[proc-adding-eventing]]
+=== Adding eventing?
+
+Quarkus unifies reactive and imperative programming you can find more 
information about this in the 
link:https://quarkus.io/guides/quarkus-reactive-architecture[Quarkus Reactive 
Architecture] guide.
+
+In this phase we need to decide how the Event-Driven Architecture needs to be 
added to our project.
+As an event-driven architecture, it uses events to trigger and communicate 
between services. It allows decoupled applications to asynchronously publish 
and subscribe to events through an event broker. The event-driven architecture 
is a method of developing systems that allows information to flow in real time 
between applications, microservices, and connected devices.
+
+This means that applications and devices do not need to know where they are 
sending information or where the information they are consuming comes from.
+
+If we choose to add eventing, {product_name} supports different options like:
+
+* *Kafka Connector* for Reactive Messaging. See 
xref:use-cases/advanced-developer-use-cases/event-orchestration/consume-producing-events-with-kafka.adoc[]
 for more details.
+* *Knative* eventing.  See 
xref:use-cases/advanced-developer-use-cases/event-orchestration/consume-produce-events-with-knative-eventing.adoc[]
 for more details.
+
+You need to choose how the different project components will communicate and 
what kind of communication is needed. More details about 
link:https://quarkus.io/guides/quarkus-reactive-architecture#quarkus-extensions-enabling-reactive[Quarkus
 Extensions enabling Reactive]
+
+[[proc-adding-data-index-service]]
+=== Adding Data Index service?
+
+The {data_index_ref} service is able to index the {workflow_instance} 
information using GraphQL. This is very useful if you want to consume the 
workflow data in different applications through a GraphQL endpoint.
+For more information about {data_index_ref} service see 
xref:data-index/data-index-core-concepts.adoc[] for more details.
+
+If you decide to index the data, you need to select how to integrate the 
{data_index_ref} service in your topology. Here are some options:
+
+* You can choose to have the data indexation service integrated directly in 
our application using the different 
xref:use-cases/advanced-developer-use-cases/data-index/data-index-quarkus-extension.adoc[].
+This allows you to use the same data source as the application persistence 
uses, without the need of extra service deployment.
+** *{data_index_ref} persistence extension*. That persists the indexed data 
directly at the application data source.
+** *{data_index_ref} extension*. That persist directly the indexed data at the 
application data source and also provide the GraphQL endpoint to interact with 
the persisted data.
+* Another option is to have the Data Index as a standalone service. In this 
case, you need to properly configure the communication between your 
{product_name} application and the {data_index_ref} service. More details in 
xref:data-index/data-index-service.adoc[]
+
+
+[[proc-adding-job-service]]
+=== Adding Job service?
+
+The Job Service facilitates the scheduled execution of tasks in a cloud 
environment. If any of your {product_name} workflow needs some kind of 
temporary schedule, you will need to integrate the Job service.
+
+If you decide to use Job Service, you need to select how to integrate the 
service in your topology. Here are some options:
+
+* You can choose to have the Job service integrated directly in your 
{product_name} Quarkus application using 
xref:use-cases/advanced-developer-use-cases/job-service/quarkus-extensions.adoc[]
 guide.
+* Explore how to integrate the Job service and define the interaction with 
your {product_name} application workflows. You can find more Job service 
related details in xref:job-services/core-concepts.adoc[Job Service Core 
concepts].
+
+[[proc-development-phase]]
+== Development phase
+
+Once you decided which components you need to integrate into {product_name} 
project, you can jump into the workflow development phase.
+
+The goal is to create a workflow and be able to test and improve it. 
{product_name} provides some tooling in order to facilitate the developer to 
try the workflows during this development phase and refine them before going to 
deployment phase.

Review Comment:
   ```suggestion
   The goal is to create a workflow and be able to test and improve it. 
{product_name} provides some tooling to facilitate the developer to try the 
workflows during this development phase and refine them before going to the 
deployment phase.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to