* 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
* 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
* 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
* Merge petri-net api module into intermediate language
* Merge ProcessQuery into ProcessInstanceEventSourcing
* add explanation of the baker modules
* a few small doc improvements
* 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
* 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
* 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
* 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
* 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
* 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.
* 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