54 Commits

Author SHA1 Message Date
Nikola Kasev
5edb1a86b0 improved pitch 2020-03-04 09:43:57 +01:00
yk24na
f4b7f31933 Solve #426: update the the code to use AkkaBaker over Baker. Fix compilation issues in bumped cats api.
Update the examples documentation to use AkkaBaker over Baker
2020-02-19 13:21:46 +01:00
tevdokimov
7be76d3b37 some methods updated 2020-02-07 16:18:13 +01:00
Francisco M. Aramburo Torres
eda0163b87 Merged master 2019-12-09 13:46:32 +01:00
Francisco Aramburo
2157818908 Fixes typos created by Intellij refactoring tool D: 2019-11-26 13:32:14 +01:00
Francisco Aramburo
04ea311a30 WIP separation of the interface 2019-11-26 13:32:14 +01:00
Francisco Aramburo
0a535293a9 Algorithm work 2019-11-26 13:32:14 +01:00
Sander Dijkhuis
a22a667b32 docs: document RuntimeEvent access removal in v3
Based on an explanation by @Tim-Linschoten:
https://github.com/ing-bank/baker/issues/287#issuecomment-542261760
2019-10-15 18:17:20 +02:00
Tim Linschoten
f184eb2672 Merge branch 'master' into remove_akka_streams 2019-10-09 09:41:41 +02:00
anubhav0712
64866adb44 fixing maven dependency 2019-10-06 16:56:44 +05:30
anubhav0712
1f3f4c69b8 fixing maven documentation 2019-10-06 16:55:18 +05:30
Stas
2bc134af6b Remove dependency to akka-stream library from production. 2019-10-02 17:35:31 +02:00
Tim Linschoten
10ea2324c1 Review comments processed. 2019-08-29 08:50:39 +02:00
Tim Linschoten
e4a8811d9d Some minor changes to the release notes. 2019-08-29 08:30:36 +02:00
Tim Linschoten
b709360f3b Added the SinkJournal.
Finished the Baker release notes and migration guide.
2019-08-28 11:35:50 +02:00
Tim Linschoten
28152a54c6 First setup Baker release notes 2019-08-27 11:29:55 +02:00
Tim Linschoten
30722d0bb8 Fix broken links in the documentation 2019-08-26 10:15:37 +02:00
Francisco Aramburo
f854a90bed Minors of #264 2019-08-19 16:09:12 +02:00
Francisco Arámburo
75691cd686 Docs 3.0 (#256)
* Initial structure for the documentation of Baker 3

* Added the examples module and started working on the design a recipe section

* continued work on documentation

* More work on documentation

* Worked on the documentation

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* documentation work

* example work

* Documentation work

* Example app work

* Example app work

* Example web app done in Scala

* Documentation work

* Gatling setup

* Work on example app metrics

* Grafana setup

* Loadtesting mods

* Documentation work

* Example app memory dump work

* Load testing work

* proof read
2019-08-14 14:29:36 +02:00
Francisco Arámburo
68b01168be Renames and minor refactors as concluded on meetings (#245)
* RecipeInformation split between jsvadsl/scaladsl and adapted naming of abstract types

* Removed done TODO

* Rename to EventInstance, IngredientInstance and InteractionInstance

* Refactor processId -> recipeInstanceId

* Added back ProcessId annotation for backwards compatibility reasons

* minor
2019-07-02 14:05:30 +02:00
Tim Linschoten
ae49e13bf9 moved the runtime.actor package into the runtime.core package. 2019-05-08 16:03:48 +02:00
Tim Linschoten
308e97b36b Moved classes to new package structure.
We now have a javadsl, scaladsl and common package for the runtime.
This follows the approach of most other libraries.
2019-05-08 15:51:57 +02:00
Tim Linschoten
01b5f62425 Create the BakerInterface to ensure JBaker and Baker implementations are inline.
First changes done to make all interfaces return futures.
2019-05-08 15:04:17 +02:00
Nikola Kasev
a125b4ebe8 Baker feature comparison (#196)
* compared similiar solutions

* added header

* hyperlinked
2019-01-24 11:16:24 +01:00
Francisco Arámburo
83fa1b0408 Minor typos on the docs (#193) 2019-01-21 09:23:39 +01:00
Merlijn van Ittersum
1ab7738769 fix a bug relating to event renames and overriding interaction output (#192) 2018-12-14 15:35:49 +01:00
Bekir Oguz
2d531d7eba Merge pull request #191 from ing-bank/release-2.0.3
Release 2.0.3
2018-12-14 10:59:35 +01:00
Merlijn Van Ittersum
2f03fc395c update versions in docs 2018-12-14 10:56:33 +01:00
Merlijn van Ittersum
3b313cd253 Update the change log + small refactor (#190)
* update the changelog + small refactor

* more docs

* add a section about retry exhaustion
2018-12-14 10:39:18 +01:00
Merlijn van Ittersum
3fead64594 Custom failure resolution for failed interactions, fixes #109 (#183)
* added custom failure resolution to ProcessInstance

* added failure mitigation messages to ProcessIndex + some refactoring

* Move interaction event validation to where it can be re-used

* implement resolving a blocked interaction with an event

* add retry/resolve methods to JBaker

* added a test for the retry case

* remove invalid response message

* remove FATAL exception strategy since it was not used

* small refactor of Instance.isBlocked(transition)

* a few code docs

* added protobuf messages with tests

* added documentation about retry/resolve blocked interactions

* allow stop retrying a transition, small refactor

* do not hardcode timeouts, add stop retry, refactor

* updated the developer instructions on how to push the github pages documentation (#184)

* Add link to documentation to the readme (#185)

* Fix typo in docs (#188)

* small typo fixes

* added jbaker proxy tests
2018-12-13 12:06:40 +01:00
Jordy Moos
0f1ccf9897 Fix typo in docs (#188) 2018-12-10 22:01:36 +01:00
Bekir Oguz
e137378355 added SBR majority strategy information to the docs, also updated the changelog (#181) 2018-12-04 12:58:21 +01:00
Merlijn van Ittersum
94c444644d Update docs 2 (#180)
* Merge petri-net api module into intermediate language

* Merge ProcessQuery into ProcessInstanceEventSourcing

* add explanation of the baker modules

* a few small doc improvements
2018-12-04 11:24:56 +01:00
Merlijn van Ittersum
b9f4bb089d Added / Improve documentation site (#177)
* extra docs

* more docs

* revert change

* remove some unused images

* improved the docs

* Use pip to install mkdocs instead of brew

* more docs

* add documentation about the runtime

* added home page

* reorganized the pages somewhat

* Add ing color for the top bar

* some fixes

* add missing event listener page

* fix some links

* add page about process execution

* Adding start of dictionary and process-execution to the documentation

* Add aditional steps to process execution

* more docs about process execution

* added more docs about the dsl

* add docs about execution sementics & getting started

* improvements

* added a graph for incremental backoff

* a few small changes

* added code example for sensory events

* Revert test change
2018-12-03 10:58:19 +01:00
Bekir Oguz
f092ac77ff Split brain resolver (#178)
* created initial version of the SplitBrainResolver algorithm TLA specification

* SBR algorithm from the first node's perspective

* added a README file and changed the Initial state

* run the same algorithm from 2 to N nr of members

* small refactorings on readability and debugging

* deleted unnecessary project files from github

* added the gitignore file again

* renamed the first specification as V1

* Start of the cluster specification

* Combine invariants of the nodes for the cluster

* refactored Cluster spec to support given number of Nodes (needs fix)

* refactored the cluster view and node view specs

* start to model the real algorithm in PlusCal

* added all possible states

* modelled receive unreachable/up messages and also acting on the sbr decision. need to fix the unlimited number of states problem still.

* small changes but still non ending model checking due to state space explosion

* cluster v3 defined with a terminating algorithm

* V3: leader is not a global variable but a local to nodes. Each node has a perspective of who the leader is.

* created ClusterV4 with only 3 processes for 3 nodes.

* ClusterV4 is done.

* using symettic model values, which redices the number of states generated

* simplified the algorithm, and added NoSplitBrain invariant which holds for all states

* fixed the ClusterV4 model invariants config in the Toolbox so it fails now.

* small improvements only

* ClusterV5 with smarter state space generation, and improvements in the algorithm

* ClusterV6 with temporal property

* small cleanup on V6

* multi-jvm test setup and initial sbr classes/actors created. multi-jvm tests are inspired from https://github.com/TanUkkii007/akka-cluster-custom-downing library.

* small refactoring, still having failing tests.

* using cluster.down instead of cluster.leave fixes the tests

* another test setup added using the mocked (puppet) failure detector

* multi-jvm tests with the real network split between nodes

* Test that the node with smallest unique address survives a equal split

* Refactor the split brain resolver

* Add test to proof that hickups can mess with the decision

* Add hick up test

* use the puppet failure detector in the HickUp test. Small code improvements.

* moved all split brain resolver code and tests from runtime into its own module.

* moved all tls files from root to split-brain-resolver module

* removed other third party split-brain-resolver dependency.

* small refactoring on log messages

* renamed down-removal-margin config to stable-after and added documentation.

* Fix english

* fixed review comments
2018-11-30 12:28:27 +01:00
Merlijn van Ittersum
007d18b294 Cleanups and docs (#175)
* do not hardcode update cache timeout in process index actor

* no need to create a future from cats.effect.IO

* remove unused parameter in RecipeRuntime

* remove duplicate logging

* improve code docs and some error messages

* Import all parameters in JBaker methods with @Nonnull

* delete unused files

* update the webshop example image

* imports

* update docs, cross build test

* add missing dependency
2018-11-26 09:31:12 +01:00
Merlijn van Ittersum
c5f5467ed1 Migration guide for 1.3.x -> 2.0.0 (#163)
* write migration guide for @ProvidesIngredient removal

* Revert change

* clarify ingredient serializable

* some updates to the migration guide

* added docs about event listening

* update changelog

* style alignemtn
2018-11-15 12:03:26 +01:00
Merlijn van Ittersum
f5706a484d Remove provides ingredient (#160)
* removed @ProvidesIngredient annotation

* refactor some test interactions to FiresOneOfEvents

* remove all remaining code references to ProvidesIngredient

* remove SuccessAppend string

* removed unecessary type alias

* removed ProvidesNothing

* remove InteractionOutput, use Seq[Event] instead
2018-10-30 16:34:24 +01:00
Merlijn Van Ittersum
a4f15218f3 fix link in documentation 2018-07-02 13:50:14 +02:00
Merlijn van Ittersum
272ae7beb4 Added technical documentation about the compiler (#131)
* added some documentation about the compiler

* added docs about AND precondition

* update the draw.io diagram

* improved the compiler documentation
2018-07-02 13:41:31 +02:00
Merlijn van Ittersum
9585f1ffed Allow custom style to be configured for recipe visualisation (#132)
* allow custom style to be configured for recipe visualization

* some improvements, also read fired event/interaction style

* added documentation about the visual style feature

* added support for scala/java examples in docs

* added link to github page
2018-07-02 13:40:48 +02:00
Merlijn Van Ittersum
6d4f2e96e0 remove graphviz-java dependency, added documentation on visualization 2018-06-26 14:00:08 +02:00
Merlijn Van Ittersum
e44cb1c110 mkdocs setup 2018-06-19 15:49:45 +02:00
Tim Linschoten
75da161759 Persist recipes (#80)
* CompilesRecipes are now also persisted if using Persistence Actors.
This ensures a process always uses the recipe it was Baked for.
A new persisted actor the RecipeManager takes care of the recipes.
One sharded ProcessIndex actor now takes care all recipes processes.
Therefor he RecipeHandler has been removed.

* mend

* moved IngredientDescriptor type alias to il module

* actually pass recipe name in JBaker, switched argument order

* add getAllRecipes() to baker

* use PoisonPill as termination message for the RecipeManager singleton

* added Value.equalsObject(..) to easily compare agains java objects

* You can now register an eventListener without given a recipe name.
In this case all events will be registered.

* Upgrade to scala version 2.12.4 and small code fixes to comply to this version.

* Excluded the recipeDSL from the javadoc because of a bug in java 2.12.4 that breaks the build during creation of javadocs.

* Renamed handleEvent to processEvent to have less of a change on the consumer side.

* Reverted back to 2.11.12 instead of 2.12.4.
Will upgrade to 2.12.4 in a later release.

* renamed variable names of renameProvidedIngredients.

* Moved the retryExhaustedEventName to a javadsl.util class so its accessable from java code.

* Changes after review comments Merlijn.
2018-01-23 16:47:12 +01:00
Nikola Kasev
ba71258dd4 more logical sequence 2018-01-19 17:06:55 +01:00
Nikola Kasev
0678b805e7 logical sequence 2018-01-15 13:49:45 +01:00
Bekir Oguz
3d4ccf1859 Baker 2.0.0
* First step to allow multiple recipes in Baker.
Now Baker has a seperate RecipeHandler per recipe.

* Fixes to make tests work with the new changes.

* Added basic tests for the RecipeHandler

* Removed the recipe functions from Baker (JBaker to follow)

* Setup first step for serializing the recipe.

* Added test for running of the serialized/deserialized recipe.

* Added equals mothods to the commonserialize components that checks only on values that the interfaces have.
Updated tests.

* Setup fist BAAS class and changes needed to validate and serialize complexer recipes.

* Created a InteractionManager and InteractionImplementation class that handle the interaction implementation.
This gives us the freedom to have the implementation be something else then a function.

* Made the InteractionImplementation an interface.
This way multiple kind of interaction implementations can exists.

* First setup of sending the recipe via HTTP to BAAS.

* Added a simple BAASClient for sending the recipe to BAAS.

* Added the Ingredient type system for the dsl and the intermediate language.
Still need to update the runtime.

* Added more tests for the POJO ingredient type in the recipe dsl

* added il type system and converters to/from java

* fix compilation errors

* fixed somes tests

* fixed more tests

* more fixes, clarify some test cases in RecipeCompilerSpec

* implement hack to recover lost generic types when using mockito

* fix remaing tests in BakerExecutionSpec

* fixed all remaining specs

* some fixes, move Value & BType to separate files

* support byte arrays as a primitive type

* Removed ambiguity from types in the compiler.

* Fixed the validation for created null ingredients.

* added support for map types

* do not allow Object.class as an ingredient type

* also do not support converting to Object.class type

* Moved the Type system to its own package because at least for now this is needed in the RecipeDsl.
The dependency to this from the recipe dsl can be removed as soon as the CompiledRecipe is serializable.

* Added very basic functionality for adding remote running implementations to BAAS.

* Added basic functionality to Bake, handleEvents and getState for BAAS.

* Small refactors to the BAAS tests.

* Fixed the call to execute the interactions externally.
This is the first working version of a happy flow of a recipe in the BAAS POC.

* Refactored the test to have some simple validations on the end response.
Changed it so that only one Runner needs to be started.

* Support creating multiple implementations from one interactionImplementatoin.
One for each possible name.

* code cleanups in baas

* more cleanups

* Enabled all basic unit tests for BAAS

* Changes so that BAAS can be started against a local cassandra in the test.

* Small Fix to handleEvent of BAAS.

* separate object marhsalling from routes

* removed type/values from dsl module

* removed unused test classes

* simplifications in baas module

* Changes so that there are not multiple actor systems in BAAS.

* added received/completed option to event endpoint in baas

* apply some code reuse in baas client code

* seperate server/client code for remote interactions

* removed isValidFor(..) from InteractionImplementation

* added getEvents to BAASClient

* added a java version of toImplementationMap in MethodInteractionImplementation

* validate the types of an implementation for interacions of an added recipe

* improved error messages for illegal java types in dsl module

* change wording in error message

* added JRecipeHandler, removed all recipe methods from Baker/JBaker

* removed writeSVGToFile method from CompiledRecipe

* work in progress on serializing CompiledRecipe using Kryo

* finished serialize CompiledRecipe

* removed useless method

* rename BType->Type

* align java and scala dsls: rename processEvent->handleEvent

* next release: 2.0.0

* added some changelogs for 2.0.0

* update changelog for the latest baker 1.1.x versions

* improved the 2.0.0 changelog
2017-12-08 15:51:54 +01:00
Nikola Kasev
18e9b5d0d1 fixed typo 2017-11-18 17:09:53 -08:00
Nikola Kasev
57e7e50fdc polishing details 2017-11-18 08:06:24 -08:00
Nikola Kasev
00a3a27686 ready for presentation 2017-11-18 04:58:42 -08:00