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

Adding best practices #631

Merged
merged 105 commits into from
Feb 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
10dfb99
Adding possibility to render BPMN diagrams with callouts
berndruecker Dec 8, 2021
6b1cc86
removed comments
berndruecker Dec 8, 2021
384cba1
Added "Naming BPMN Elements"
berndruecker Dec 8, 2021
5b252da
Added "Building Flexibility Into BPMN Models"
berndruecker Dec 8, 2021
c92f861
Improved BPMN integration and callouts
berndruecker Dec 9, 2021
72eb750
Added "Creating Readable Process Models"
berndruecker Dec 9, 2021
7ddf8ec
Improved BPMN integration and callouts
berndruecker Dec 9, 2021
00c06aa
trying to improve callouts
berndruecker Dec 9, 2021
fcda0a1
Added "Modeling beyond the happy path"
berndruecker Dec 9, 2021
968df34
Initial check-in of "Choosing the DMN hit policy"
berndruecker Dec 10, 2021
25a7a06
added first draft of sizing best practice (missing disk space)
berndruecker Dec 21, 2021
a88279c
Merge branch 'camunda-cloud:master' into best-practices
berndruecker Dec 21, 2021
45b6356
Added C7 sizing BP
berndruecker Dec 22, 2021
bab2793
weakened benchmark project
berndruecker Dec 22, 2021
fd09936
switching to lower case headlines
berndruecker Dec 22, 2021
4b3c870
renamed "-bpmn" / "-dmn" to "-assets" folder
berndruecker Dec 22, 2021
ed98368
Merge branch 'best-practices' into master
berndruecker Jan 11, 2022
74252d5
Merge pull request #25 from camunda-cloud/master
berndruecker Jan 11, 2022
465adea
Added thumbs-down for BPMN models
berndruecker Jan 11, 2022
e691c6a
Merge branch 'best-practices' of https://github.com/berndruecker/camu…
berndruecker Jan 11, 2022
dd67691
added modeling-with-situation-patterns
berndruecker Jan 11, 2022
5f368ad
fixed CSS merge
berndruecker Jan 11, 2022
28847c4
Added handling-data-in-processes
berndruecker Jan 11, 2022
5105c2e
fixed link
berndruecker Jan 12, 2022
f5b288a
migrated invoking-services-from-the-process as C7 specific BP
berndruecker Jan 12, 2022
e806683
migrated connecting-the-workflow-engine-with-your-world from blog post
berndruecker Jan 12, 2022
9162872
Iterated over sizing best practice with the latest learnings
berndruecker Jan 13, 2022
ae81d56
Fixed numbers, adjusted to latest learnings
berndruecker Jan 13, 2022
b9f8caa
typo
berndruecker Jan 14, 2022
f386894
Migrated service-integration-patterns from blog
berndruecker Jan 14, 2022
9f21178
migrated writing-good-workers
berndruecker Jan 14, 2022
df5718e
removed outdated CC version warning
berndruecker Jan 17, 2022
c4fef29
converted routing-events-to-processes
berndruecker Jan 17, 2022
3565c50
Initial convertion of dealing-with-exception, branching out C7-only c…
berndruecker Jan 18, 2022
5ac507b
typos
berndruecker Jan 18, 2022
c4b8a69
Drafted initial version of dealing-with-exceptions
berndruecker Jan 18, 2022
5a92925
migrated deciding-about-your-stack-c7
berndruecker Jan 19, 2022
f886dd5
migrated doing-a-proper-poc
berndruecker Jan 19, 2022
0f4e36b
copy edit of creating readable process models and modeling beyond the…
christinaausley Jan 21, 2022
dee9fa6
adjusted C7 stack and added new community extension
berndruecker Jan 24, 2022
2473279
Merge branch 'best-practices' of https://github.com/berndruecker/camu…
berndruecker Jan 24, 2022
15b4635
looked through copy edit
berndruecker Jan 24, 2022
bb6dd42
technical review of Modeling with Situation Patterns and Naming BPMN …
christinaausley Jan 24, 2022
5b9ba49
Adjusted to use trailing slashes (bpmn viewer now can handle both)
berndruecker Jan 25, 2022
9e53bf9
Merge branch 'best-practices' of https://github.com/berndruecker/camu…
berndruecker Jan 25, 2022
39b14f4
Fixed usage of trailing slashes
berndruecker Jan 25, 2022
e325db2
fixing links
berndruecker Jan 25, 2022
a73ac40
fixing links
berndruecker Jan 25, 2022
4962e8f
initial convertion (still needing serious work)
berndruecker Jan 25, 2022
3a13656
Fixed trailing slash detection in bpmn.js thingy
berndruecker Jan 25, 2022
59e5a44
converted naming-technically-relevant-ids
berndruecker Jan 31, 2022
cd04cf9
style(formatting): technical review of building flexibility and choos…
christinaausley Jan 31, 2022
6ce6f55
Converted performance-tuning-camunda-c7
berndruecker Feb 1, 2022
1ed3433
Merge branch 'best-practices' of https://github.com/berndruecker/camu…
berndruecker Feb 1, 2022
e84d7e3
Merge branch 'camunda-cloud:master' into best-practices
berndruecker Feb 1, 2022
7a62166
Added sidebar and overview
berndruecker Feb 1, 2022
c353e7a
Small fixed to prep for copy edit
berndruecker Feb 1, 2022
9caefcc
Small fixed to prep for copy edit
berndruecker Feb 1, 2022
b7c79e7
migrated securing C7
berndruecker Feb 2, 2022
a70e5c5
linked to the docs for security
berndruecker Feb 2, 2022
fdc7654
converted operating-camunda-c7
berndruecker Feb 2, 2022
9e13e5f
style(formatting): review of deciding about stack, poc, and naming re…
christinaausley Feb 7, 2022
b4bdcd8
typo
berndruecker Feb 10, 2022
30f3fd7
converted versioning-process-definitions
berndruecker Feb 10, 2022
8bbccfe
Converted reporting-about-processes-assets/
berndruecker Feb 10, 2022
a5d1873
Converted reporting-about-processes-assets/
berndruecker Feb 10, 2022
e492f98
Converted reporting-about-processes-assets/
berndruecker Feb 10, 2022
408da0c
migrated following-the-customer-success-path integrating estimating-e…
berndruecker Feb 12, 2022
00f652c
intermediate step for testing
berndruecker Feb 12, 2022
f5be61d
slightly restructured BP content
berndruecker Feb 12, 2022
d376f77
first draft of new testing bp
berndruecker Feb 14, 2022
6f2c0cd
Improved testing-process-definitions
berndruecker Feb 14, 2022
a243682
style(formatting): technical review of sizing your environment and fo…
christinaausley Feb 14, 2022
33b7ee7
converted human task related practices
berndruecker Feb 15, 2022
1e9e1a8
Merge branch 'best-practices' of https://github.com/berndruecker/camu…
berndruecker Feb 15, 2022
b30f6d0
Fixed problem with BPMN's not getting rendered on page changes (moved…
berndruecker Feb 15, 2022
aa3a75a
fixed broken links
berndruecker Feb 15, 2022
97fbdf3
Fixed links
berndruecker Feb 15, 2022
3c89bde
fixed links
berndruecker Feb 16, 2022
4ea4a45
fixed links
berndruecker Feb 16, 2022
4da12cc
moved svg images to static assets
berndruecker Feb 16, 2022
beaaa2b
fixed links
berndruecker Feb 16, 2022
538b26a
fixed linked image
berndruecker Feb 17, 2022
9b72dc2
Fixed double visualization of bpmns
berndruecker Feb 17, 2022
6b0c737
commented polyglot tests for now
berndruecker Feb 17, 2022
60e4a04
slightly improved C7 wording
berndruecker Feb 17, 2022
5c5dce6
added greenfield stack BP for CC
berndruecker Feb 17, 2022
a6f2836
typo
berndruecker Feb 17, 2022
6313420
fixed link
berndruecker Feb 17, 2022
400d75e
adjusted package-lock.json to master version, added missing bp to sid…
berndruecker Feb 17, 2022
b5679bf
Merge pull request #32 from camunda-cloud/master
berndruecker Feb 17, 2022
9ff4e11
Converted https://camunda.com/best-practices/understanding-process-mi…
berndruecker Feb 17, 2022
313e833
fixed links after fetching upstream changes
berndruecker Feb 17, 2022
8023eaa
Fixed overview and headlines
berndruecker Feb 17, 2022
4221ac3
Fixed DMN file loading (trailing slashes)
berndruecker Feb 17, 2022
78c0651
adjusted to latest numbers
berndruecker Feb 18, 2022
de02aee
docs(usage-metrics): Updating usage metrics docs to have sample respo…
santanaluiz Feb 17, 2022
7e57f5f
chore: fix broken internal links
menski Feb 18, 2022
f2e0ee9
chore: add redirect for best-practices overview page
menski Feb 18, 2022
12849bd
Moved BPMN models to static/ to make docusaurus happy
berndruecker Feb 18, 2022
4771aef
Merge branch 'best-practices' of https://github.com/camunda-cloud/cam…
berndruecker Feb 18, 2022
a2088ea
docs(best practices): remove extra frontmatter values
akeller Feb 18, 2022
fd25db1
Merge branch 'master' into best-practices
akeller Feb 18, 2022
6dce84d
Added calculcation exportet from GDocs
berndruecker Feb 19, 2022
f49e928
docs(best-practices): remove .vscode file
akeller Feb 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions docs/components/best-practices.md

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Deciding about your stack
tags:
- Architecture
- Stack
- Database
- Application Server
- Spring Boot
- Maven
---

If you don't have special architecture requirements, we recommend using SaaS following the proposed greenfield stack.

:::caution Camunda Cloud
This best practice targets Camunda Cloud only! If you look for Camunda Platform 7, please refer to [Deciding about your Camunda 7 stack](../deciding-about-your-stack-c7/).
:::

## The greenfield stack

We like to give one greenfield stack recommendation, which is the stack you can simply use if there is no reason against it. And while we went through long and detailed discussions to come to this recommendation, it *doesn't* mean that it is necessarily superior to alternative stacks. You can still feel confident if you go down another route (see below for alternative options).

The stack looks pretty similar in various programming language. Please use the programnming language your team is most familiar with. If in doubt, use Java or JavaScript.

### The Java greenfield stack

![greenfield stack architecture diagram](deciding-about-your-stack-assets/greenfield-architecture.png)

Use the following stack:

1. Use [Camunda Cloud SaaS](https://accounts.cloud.camunda.io/signup) and create a cluster there

1. Build your process solution project as a [Spring Boot](https://spring.io/projects/spring-boot) application, using the [Spring Zeebe](/docs/apis-clients/community-clients/spring/).

2. Use [Maven](https://maven.apache.org/) as a build tool.

3. Use your favorite IDE, for example Visual Studio Code, IntelliJ or Eclipse.

3. Use [Oracle JDK 15](https://www.oracle.com/technetwork/java/javase/downloads/index.html) as Java runtime.

4. Model the processes with the [Camunda Modeler](https://camunda.org/download/modeler/).

4. Add your process models and all Java code to the project.

To run the process application *in production*:

3. Run the process application by copying the `jar` file to the server and start it with `java -jar YourProcessApplication.jar`. This is most often done via Docker.

See our [example application](https://github.com/camunda-community-hub/camunda-cloud-examples/tree/main/twitter-review-java-springboot).


We decided on this stack for the following reasons:

- All components are open-source and easily available.
- SaaS is the easiest way to consume capabilities like a workflow engine.
- Spring Boot is currently the most adopted way of building Java applications.
- Spring Boot applications are easy to customize as well as easy to roll out into test and production environments, either on-premise or in the cloud.

You might want to follow the [get started guide for microservices orchestration](/docs/guides/getting-started-orchestrate-microservices/) or follow the instrucstions in [Spring Zeebe](https://github.com/camunda-community-hub/spring-zeebe) to get going


## Polyglot stacks

You can develop process solutions as decribed with Java above also in any other programming language. Simply use the [existing language clients / SDKs](/docs/apis-clients/overview/) for doing this.

<!--
## The JavaScript greenfield stack

## The C# greenfield stack
-->

## Customize your stack

### Running Camunda Cloud self-managed

You can also run Camunda Cloud self-managed on your own Kubernetes cluster. Details can be found in the [docs](/docs/self-managed/overview).

While there [exists a Docker Compose configuration](/docs/self-managed/zeebe-deployment/docker/install/) to run Camunda Cload locally, this is not meant to be used for production, but rather to quickly startup compenents on a developer machine to be able to play around.


### Modeling for executable processes

We distinguish two different roles modeling in BPM projects:

* *Process Developers* develop an executable process implementation. Process developers implementing solutions with Camunda must use Camunda Modeler to model executable processes, edit technical attributes, and manage and version (e.g. in Git or SVN) the resulting (XML) files as part of the development project.

* *Process Analysts* capture the operational know how about a process. For this part of the work, it is possible to use a different tool than Camunda Modeler.

| | Camunda Modeler | Third-Party Modeler (BPMN Standard Compliant) | Third-Party Modeler (Non-Compliant to Standard) |
| -- | -- | -- | -- |
| Roundtrip in between process analysts and developers possible | &#10004; | &#10004; (Carefully check level of BPMN compliance - the [Model Interchange Working Group](http://bpmn-miwg.github.io/bpmn-miwg-tools/) can serve as a first starting point | |
| Use for Process Analysts | &#10004; | &#10004; | |
| Use for Process Developers | &#10004; | | |
| Use when | You do not have a BPMN standard compliant modeling tool already rolled out. | You already rolled out a BPMN tool with a standard compliancy sufficient for roundtrip. | Try to avoid |
| | [Download](https://camunda.org/download/modeler/) | [e.g. Cawemo](http://cawemo.com/) | |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading