Does cloud compatible complex event proceesing (CEP) framework exist? - complex-event-processing

I have used ESPER's Complex Event Processing (CEP) framework for my work. It is working in standalone system very well. I do not know whether any cloud compatible CEP framework exists or not. By cloud compatible, i mean, it should scale on multiple machines. Please tell me if you are aware of any such CEP framework.
Thank you very much

Related

How to use Axon with Vert.X

I have a CQRS/Eventsourcing architecture with 3 microservices. I implemented 2 microservices with vert.x 4 and I implemented CQRS/Eventsourcing without framework to improve my knowledge of this type of architecture. For the third microservice I would like to use AxonIq Framework but I have a problem with Aggregate annotation because it's not avalaible with vert.x but only with Spring.
I implemented a Spring microservice using Axon and everything work fine but I would like to know if someone can help me for use vert.x with AxonIq ? If anyone know a workaround for this problem ?
Thank
Axon Farmework provide something called Configuration API. You can have a look at the Configuration class but for making use of it, you need a Configurer, which will provide you all means of configuring your components!
On the ref-guide, you also have several examples of how to do the configuration using the API or Srring Boot. Example for Commands can be found here.
To help a bit more, I can also share a small project I made using Dropwizard and Axon Framework, meaning no Spring was used and all the Configuration was done through the API.
You can find it here https://github.com/lfgcampos/axon-playground/tree/master/chat-getting-started-dropwizard

Event Sourcing and CQRS

Is there any industry standard framework available in the market for implementing Event Sourcing and CQRS (Command Query Responsibility Segregation) ?
You can use Axon framework in java
and Prooph in php.
For node.js environment where is two major frameworks which are actual maintained nowadays - ReSolve and Wolkenkit. These frameworks also contain integrated solutions for communication with front-end web page (SPA application).
There are back-end only libraries for eventsourcing for node.js, including Node-Eventstore and Node-cqrs, but it's more libraries than frameworks for production applications.
Note that I recommended to implement your own Framework in the comment above. However I can still refer you to Akka. Akka is an actor model implementation that comes with support for event sourcing. It is available for .NET, Scala and Java:
See:
https://getakka.net/articles/intro/what-is-akka.html (.NET)
https://akka.io/docs/ (Scala & Java)

Why does a complete DynamoDB Object Mapper for JPA support NOT exist?

There are Object Mappers for JPA support for NoSQL databases like Mongo, Couch in Hibernate OGM, Spring Data. But, I could not able to find any reliable and actively developed framework for Dynamodb.
I looked spring-data-dynamodb, but it is stated that:
Due to external time and project commitments, I'm no longer able to continue active development of this project as of January 2016. Thank you to everyone involved in shaping the project over the past few years and thanks to all those who have raised issues and submitted pull requests over the time.
This lack of support causes model integration problems with widely used Java MVC frameworks.
Could you please explain me the technical details, why there is not a complete Dynamodb Object Mapper for JPA support?

What's the use of Knowledge in Microsoft Sync Framework

I am able to implement my own sync framework for client-server synchronization by only using LastUpdateTime as the achor. I don't have to write anything like SyncKnowledge.
seems like Knowledge is helpful in p2p scenario.
what exactly am i missing??
if you're talking about database providers in Sync Framework, there are two types of providers: offline provider and peer-to-peer/collaboration provider.
the former uses anchors to store what has been sent and what has been received and is normally used in hub-spoke type of syncs. in this scenario, only the client keeps track of what has been synched.
the other type of provider uses "knowledge" to store what has been synched and from which replica. thus it can sync peer-to-peer since its tracking as well where the change came from. in this scenario, all replicas store the knowledge.
Sync Framework 4 CTP (which has been postponed) is targeted towards Silverlight, WP7 and other non-MS platform but is actually running on top of Sync Framework 2.1.

Workflow engine BPMN, Drools, etc or ESB?

We currently have an application that is based on an in-house developed workflow engine with YAML based DSL. We are looking to move parts of it to Java.
I have discovered a number of java solutions like Intalio, JBPM, Drools Expert, Drools Flow etc.
They appear to be aimed at businesses where the business analyst creates the workflows using a graphical editor and submits them to the workflow engine. They seem geared towards ease of use for non-technical people rather than for developers with a focus on human interaction.
The workflows tend to look like.
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
If any step fails we need to retry it X times. We also need to be able to stop the system and be able to restart it and have it continue from where it was (durable).
Some of our workflows can be defined by a set of goals we need to achieve so Jess's backwards rule chaining sounds interesting but it is not open source.
It might be that what we are after is a Finite State Machine engine or just an Enterprise Service Bus and do everything as JMS queues.
Is there a good open source workflow engine that is both standards-based but also geared towards developers. We don't particular want to use a graphical workflow designer or write reams of XML and it should ideally be in Java or language agnostic (makes REST/Soap calls to external services).
Thanks,
Tom
Both Activiti and Bonita are open source and standard based (BPMN2). See for example this blog post.
Ruote is not standard based but seems close to your DSL approach and runs on a JVM thanks to JRuby.
Intaloi an open source BPM engine it offers a BPMN-support Designer and a BPEL engine. it's written in Java.
Camunda BPM is a developer-friendly Open Source workflow engine that is based on the open standards BPMN 2.0, DMN 1.1 and CMMN 1.1.
While it does come with a comfortable graphical workflow designer it also ships with a fluent API to build workflows programmatically. Camunda is written in Java, but can also be invoked from other languages via its REST API and it can make REST/Soap calls to external services.
jBPM 5 (open source, ASL, BPMN2) is just released and it's the best of Drools Flow and jBPM 4. It's lightweight but it can also integrate deeply with the Drools rule engine to make decisions.
For anyone looking for Python based enterprise grade solution.
Zengine, is GPL3 BPMN workflow based framework with Tornado, Rabbit AMQP, advanced permissions, extensible scaffolding features and more.
Built on top of following major components;
SpiffWorkflow: Powerful workflow engine with BPMN 2.0 support.
Tornado: Tornado is a Python web framework and asynchronous networking library.
Pyoko: Django esque ORM for Riak KV store.
RabbitMQ: Fast, ultrasharp AMQP server written with legendary Erlang lang.