How Apache Geode/ Gemfire sysnchronous read or write to other data sources? - gemfire

I found this picture from Internet, it is about Gemfire structure.
I am confused how does Gemfire synchronous read or write to other data sources?
I didn't find any learning materials about this.
Anyone who can tell me ? Thanks so much.

This synchronous / asynchronous reads and writes are done through Events and Listeners, which allows you to plugin your own application code into the architecture. As an example, the CacheLoader is the ideal example of a synchronous read. You can get more information about this from http://geode.apache.org/docs/guide/11/developing/events/chapter_overview.html.
Hope this helps.
Cheers.

Related

Tools available for creating a BPMN file

Does anyone know if there is a free online tool available to create BPMN files except bpmn.io?
I have been using BPMN io for a while, and it does not allow me to change the task/event's ID from the GUI. Because of this, I have to do this manually. But it's not practical when there is a large number of events/tasks. Can someone tell me if there is a free online alternative for bpmn.io that can change the event's ID or if there is a way to change the id in bpmn.io? Did a background check on this and couldn't find one.
There is also the offering from Camunda - Camunda Web Modeler (CaWeMo). I don't think it does what you are asking though. I didn't think event IDs were part of the BPMN specification, since they are likely more about implementation than modeling, but I've not actually looked into the BPMN specification that deeply.
If the one you are using exports in a format that you find useful, you could update the event nodes as a post processing step.
You can try using https://kiegroup.github.io/kogito-online/#/editor/bpmn for bpmn authoring.

Video streaming using ASP.NET CORE and SignalR

The task is to be able to connect to cameras from car DVRs and to save video from cameras to a database or file system in real time (i.e. somehow stream should be saved, but not the whole video object at once). Now I am making a prototype and trying to make sure that the video from my webcam is broadcast in a browser and saved in parallel to a database or file system. I googled for several days on how to do this and how it will be better and a little confused (between WebRtc and SignalR, since the first one is hard to understand and the second is not fully described on the internet examples which I found). I will be very glad if someone tell me with the help of which technologies and how exactly this can be done (examples are welcome, since the task needs to be done quickly). Now I look towards ASP.NET CORE and SignalR (asynchronous streams). but I don’t really understand, is it possible to solve my problem with the help of these technologies? if not, what technologies should I try? if so, how to implement the solution using these technologies?
UPD: I need to implement something like Azure Media Services (https://azure.microsoft.com/en-us/services/media-services/)

Where should I start with my OPC-UA client?

I need to create something to read data from a PLC and write it to a SQL database. I mostly work with Siemens (and Sigmatek) and I think OPC-UA would be a good solution.
My problem is that I don't know what the "right" way would be to start with this. With a PLC you sometimes come in contact with C or C++ (I always forget which one). So I think that would be a good starting point, but a good connection to an SQL-database would be very handy. That's where things gets blurry for me.
In the past I made some code (in C#) to read data from an OPC-UA server (on a Sigmatek PLC). Once I was able to read the data in C# it was easy to visualise it with a windows form application and export the data to an excel-file.
I want to start a "project" to learn how to get my data from the OPC-Server, into an SQL-database, generate a report (and create a GUI).
I'm hoping to get a good starting points, suggestions on which programming language to use and maybe a good read that gives me a better understanding of what I'm working with.
Thanks in advance!
If you are just looking to move data from a PLC to a database then take a look at Node-Red. Here is a video that should help you get started. Node-Red can do OPC-UA or just talk direct to the PLC with out the need for OPC in the middle it's your choice. If you need more help just ask!!
https://www.youtube.com/watch?v=LaUmhhMdoyY
Node-Red can also do the GUI.
For the reporting you can use https://grafana.com/.
If you would like a good Database to log to look at https://www.timescale.com/.
Grafana and Timescale work well together!!

Simple example of Masstransit with RabbitMQ

I want to use MassTransit bus with RabbitMQ. But I am not able to find a simple example. I am looking for example which will get me started.
What I have tried.
googled: But most the examples are using MSMQ or they using too many configuration options.
GitHub: I looked a the GitHub for MassTransit (https://github.com/MassTransit/MassTransit/tree/master/src/Samples) But the example here is heavily loaded. It's very hard to understand for beginners.
Reading docs: I have started reading docs but it will take some time before I finish it. I am hoping if someone shares a link to simple example which will get me started.
Please provide your suggestion.
Here's a simple, good pub-sub example using MassTransit and RabbitMQ both.
http://looselycoupledlabs.com/2014/06/masstransit-publish-subscribe-example/
In case the article link does not work, here's the link to the source code:
https://github.com/dprothero/MtPubSubExample
Thanks to the author of course!
MassTransit implements a lot of concepts and provides great many features with a very small surface API. There's no simple way to describe everything it does, because the problems it helps to solve are not simple, but an example can be made small.
Have a look at this sample I have for testing throughput:
https://github.com/et1975/Throughput-Test
The only "extra" that one might find unnecessary is Dependency Injection integration. You'd want one in most cases, but it does hide how certain bits interact.
Look at https://groups.google.com/forum/?fromgroups#!forum/masstransit-discuss for more help.
Cheers,
ET.

Getting started with the stact framework

I have been looking through the Topshelf code, and notice that it is using an assembly called 'stact.dll'. There does not seem to be a lot of information around on this. It seems to be a library for building concurrent applications using actors and 'channels'. I find the Topshelf code a bit hard to follow, but I am interested in finding out more about this style of programming. Has anyone had any experience with this library? How did you go about learning how to use it?
Stact is currently only really used internally at the moment. It's something we've built up from our experiences writing concurrent software and mostly the work of Chris Patterson (https://github.com/phatboyg/Stact).
The simplest example I can think of that's out there is from Cashbox.
https://github.com/Cashbox/Cashbox/blob/v1.0/src/Cashbox/Engines/FileStorageEngine.cs
You have a channel which passes messages. On one end of that channel you set up the message subscriptions. Line 72 builds the subscriptions, setting a handler action for each message type it expects. The HandleOnFiber(_fiber) is forcing all messages to be processed on the same thread and they are queued up as they are received. There are other handle calls and hopefully the API is rather discoverable.
Now this example hides all the channels and fibers in one class, you might have channels connecting different classes in which case a reference to the channel in question would have to be passed around.
Stact is really an Actor library. There aren't any great examples, at the moment, of using it to write actors. I hope this helps.