As I’ve mentioned elsewhere, I’m planning to implement the interfaces IReliableDictionary
and IReliableQueue
used by micro service orchestration framework ServiceFabric, which runs on Linux and Windows.
Now, ServiceFabric, that is a big topic in itself. The entire Service Fabric runtime is just now being open sourced on GitHub, which is very good for my project. Repo is here.
So what are these things?
Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Service Fabric also addresses the significant challenges in developing and managing cloud native applications.
And a context:
A lot of Microsoft runs on Service Fabric, including Azure infrastructure services and large-scale solutions like Azure SQL DB, Azure Cosmos DB, and Cortana. It’s our secret sauce for large scale distributed applications that run our business.
It can run on any set of machines, and is not tied to Azure, although there is an Azure version.
The data storage basis for this framework, is exposed as the above mentioned IReliableDictionary
and IReliableQueue
.
They work much like any dictionary or queue, just that they are replicated over the replicas of the service, that run on the nodes in the ServiceFabric cluster.
So, what is also a major part of this framework, is something called the Actor Model, where we keep data and calculations together. This and the concept of MicroServices are programming architecture concepts, pretty much well known, by name at least, among all developers.
The project
For the past year and a half, I have designed and implemented a Peer-2-peer lending platform running in ServiceFabric, and this is how my interest for combining these things have been spurred
So, what I want to do, is allowing to just reference a library, set a simple config, and switch out the underlying implementation of data storage, so that instead of storing on the node disks in the ServiceFabric cluster, it is all stored in SAFENetwork.
In theory, this means that for example the system in the company I currently work for, as well as those services mentioned above, could with a few very simple steps, be based on SAFENetwork.
In reality, we will probably see a different performance profile, which will dictate which kind of services would actually be able to use it in the same way it does today.
So, it would be awesome to have collaboration with any of all you intelligent and gifted people, to get comments and ideas on the project.
I’m currently under an insane workload at my job, but when I get to it, there will be more details about this.
So stay tuned!