Heterogeneous competitive data processing in real time is strictly one time

Heterogeneous competitive data processing in real time is strictly one time
 
Abstract
 
Real-time data processing exactly once (
exactly-once
) - the task is extremely non-trivial and requires a serious and thoughtful approach throughout the entire calculation chain. Some even believe that such a problem is impossible. . In reality, one wants to have an approach that ensures fault-tolerant processing in general without any delays and the use of various data stores, which puts forward even more stringent requirements for the system:
concurrent exactly-once
and the heterogeneity of the persistent layer. To date, this requirement does not support any of the existing systems.
 
The p...
+ 0 -

We study multi-threaded programming in Go through pictures

We study multi-threaded programming in Go through pictures  
Most likely, you've already heard about the Go programming language, its popularity is constantly growing, which is quite reasonable. This language is simple, fast and relies on a wonderful community. One of the most interesting aspects of the language is the multithreaded programming model. Primitives, based on it, allow you to create multi-threaded programs easily and simply. This article is intended for those who want to study these primitives: gorutins and channels. And, through the illustrations, I will show how to work with them. I hope this will be of great help to you in further study.
 
...
+ 0 -

Java and Project Reactor. Episode 2

Java and Project Reactor. Episode 2
 
Hello! It's amazing, but the first part of Article even someone liked it.
 
Special thanks for your feedback and comments. I have for you
bad
good news: we still have something to talk about! And more precisely, about some details of the work of Reactor.
Inside the Docker, this method can easily lie to you.
 
 
It should be noted that the boxed Schedulers.single () and Schedulers.parallel () throw an IllegalStateException when they try to start a blocking statement in them:
block (), blockLast (), toIterable (), toStream ()
. This innovation appeared in the release
???.
 
If you still want to ...
+ 0 -

Multi-agent system for parallel programming (Java, C ++)

Agent-oriented programming


 
Multi-agent system for parallel programming (Java, C ++)
 
 
The subject of the thesis at the university was "Multi-agent systems for processing knowledge bases". Connecting the Jade multi-agent system to the Protege knowledge base was not difficult and the diploma is ready. Now you can simulate abstract learning tasks, swarms of agents, and so on and so forth. But the question arose, but how to apply knowledge in practice? The case of completing R & D was turned up when working on the "smart house" system. It took a small multi-purpose application to transfer data from the "smart home" to a third-party web interface developer...[/h]
+ 0 -

Its asynchronous tcp-server in 15 minutes with a detailed analysis of

Its asynchronous tcp-server in 15 minutes with a detailed analysis of
 
Earlier I introduced a couple of small posts about the potential role of Spring Boot 2 in reactive programming. After that, I got a number of questions about how the asynchronous operations work in programming in general. Today I want to make out what is Non-blocking I /O and how to apply this knowledge to create a small tcp Server on python which can handle a lot of open and heavy (long) connections in one thread. Knowledge python It is not required: everything will be extremely simple with a lot of comments. I invite all comers!
 
...
+ 0 -

Clojure application in the style of Erlang &lt;{short}&gt; &lt;{full}&gt; <div class="post__text post__text-html js-mediator-article"> <p> As is known in the circle of Erlang developers: only Erlang developers know how to "live" correctly <del> and al

<{full}>
As is known in the circle of Erlang developers: only Erlang developers know how to "live" correctly
and all the rest "live" - ​​wrong
.
 
Without attempting to dispute this fact, let's give an example of Clojure application in the Erlang style, using the library
Otplike
.
 
For understanding the article, the reader may need to know the basics of Clojure
(and unless there are people who do not know Clojure? )
and the Erlang /OTP basic principles (processes, sending messages, <{short}>As is known in the circle of Erlang developers: only Erlang developers know how to "live" correctlyand all the rest "live" - ​​wrong. Without attempting to dispute this fact, let's give an example of Clojure application in the Erlang style, using the library Otplike . Otplike . , supervisor behaviours). In order to deal with everything else, the average Clojure developer has everything you need: code with examples , REPL and "tambourine". Why Clojure? In fact, there are many answers to the question "why Clojure". Here are our favorites: №1. Clojure is a very effective ...
+ 0 -

Management of queues in Laravel

Management of queues in Laravel
 
 
In my current project, there are many tasks that are performed in the background. Data comes from an external service and passes several stages of processing. Processing is implemented through the queuing mechanism. This is convenient, you can vary the number of vorkers for each type of process. And in the event that something falls, the queue will be copied, and the data will not be lost - will be processed once the problem is eliminated.
 
 
In order to create a task from the same process for the next stage of processing, we just called at the end of processing. dispatch () , approximately ...
+ 0 -

Go: Good, bad, evil

Go: Good, bad, evil  
Go has some wonderful properties, which is devoted to the section "Good". But when it comes to using this language not to create APIs or network servers (for which it was developed), but to implement business logic, then I find Go too clumsy and inconvenient. Although even within the framework of network programming, there are many pitfalls in both the architecture of the language and in the implementation, which makes Go dangerous, despite its seeming simplicity.
Good
 
 
Go is simple in the study of
 
Simple multi-threaded programming with the help of gorutins and channels ...
+ 0 -

A guide to background work in Android. Part 4: RxJava

A guide to background work in Android. Part 4: RxJava  
Event processing is a cycle.
 
 
In the last part we are said about using thread pool executors for background work in Android. The problem with this approach was that the sending event knows how the result should be processed. Let's see now what RxJava offers.
 
 
Disclaimer: This is not an article on how to use RxJava on Android. Such texts on the Internet and so a breakout. This - about the details of the library.
 
Part 1: AsyncTask
 
Part 2: Loaders ...
+ 0 -

Achievability of the lower bound time limit for distributed distributed failover transactions

Foreword
 
Recently I read another article from the series: "we are better than a two-phase commit". Here I will not analyze the contents of this article (although I'm thinking about giving a detailed analysis). The task of my opus is to offer the most effective version of the distributed commit in terms of time delays. Of course, such a commit is given a high price. However, the goal is to assess and show that the two-phase commit is not a brake, as many believe.
 
It should also be noted that there will be no full-scale experiments and fake comparisons. Algorithms and theoretical analysis will ...
+ 0 -