Coder Social home page Coder Social logo

agnicore / agni Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 1.25 MB

Agni Cluster OS

Home Page: http://agnicore.com

License: Apache License 2.0

C# 98.57% Shell 0.13% Batchfile 0.07% JavaScript 0.22% CSS 1.00%
cluster cloud dlm actor-model serverless social-network high-performance bigmemory fullstack unistack csharp netstandard

agni's Introduction



Agni Cluster OS

Agni Cluster OS is a UNISTACK® software platform for writing custom distributed, SaaS, and PaaS solutions. The sharp focus is kept on business-oriented systems which have much domain logic/messages/services/contracts and other rules.

Agni OS, is not just a library - it is a full stack framework(an Application Operating System) for high scalability having all development done using lean .NET (free from 3rd parties)

According to UNISTACK® ideology - all code is written only in C# and JavaScript (used in some Web Admin UI tools). The same base libraries are used in the same consistent way throught the code base. This project only uses language and runtime features which are standard to the CLR and language itself, as provided by primary Microsoft implementation.

Documentation Index

Feature Overview

  • Hierarchy of geo-spread regions, NOC, zones
  • Host and zone governor supervisor processes
  • Logical to physical addressing/node name resolution
  • Hierarchical version-controlled configuration engine; data mounted via Virtual File System (e.g. SVN, Web, RDBMS etc.) the configuration bank is called "The Metabase"
  • Global Distributed Unique ID (GDID) generation - monotonic increasing integers
  • Distributed lock manager (DLM) - operates in hierarchical cluster allowing to coordinate tasks on the relevant level of hierarchy/scope
  • WorkSets - a set of virtual work which coordinates item execution among multiple nodes - akin to C# Parallel.Foreach in a cluster
  • HostSets - sets of workers providing balancing and sharding on topic/key
  • Todo Queues - queues of "serverless" Todo instances - similar to distributed Tasks
  • Processes - distributed contexts which coordinate Todo execution strands. Process exchange Signals to
  • Database Sharding Router - splis data into range partitions and then shards - supports any RDBMS or NoSQL as leaf nodes backend
  • Key-Value Cluster Database with expiration

Agni includes a module called Agni.Social - a core for custom systems like Twitter/Facebook which have much social network logic. It is important to mention scalability - the social component uses Agni sharding, Processes and Todos executed in a cluster to serve a truly unlimited number of clients/social profiles.

Social features:

  • Social Graph Node - cluster database solution for storing business entities (e.g. "friends", "groups", "rooms", "organizations" etc) and their relationships. The concrete systems provide GraphHost implementations which map graph nodes to concrete business entities
  • Graph node subscriptions and event delivery - done in the cloud, e.g. the system can handle users with as low as a few to multi-multi million node subscriptions (think Facebook or Twitter)
  • Node "Friendship"
  • Comment system - voting like/dislike. Comments, Questions, Answers, Moderation
  • Trending - special-purpose OLAP engine harvesting, storing and querying data in real time, "top prodyucts in xyz category in the past week/month/year" etc.

See Agnicore Documentation Site for more details

Runtime / Platform

Agni is built on NFX; the whole stack is based on .NET Standard and runs on .NET Framework 4.7+ and .NET Core 2+ runtimes.

Agni support on platforms is the same as for its base core library NFX - .NET Standard 2+ which works on different runtimes. Officially we support .NET Core and .NET Framework:

  • .NET Standard 2 - supported
  • .NET Core 2 - supported
  • .NET Framework 4.7.1 - supports classic .NET Framework 4.7.1+

NFX supports cross-platform development and is tested on:

  • Windows Win 2010 Core 2 and Net Fx
  • Linux Ubuntu 16 LTS using Core 2
  • Mac OS 14 using Core 2

NFX Builds on:

  • Windows / MSBuild 15 / VS 2017
  • in process - *nix (need scripts and build process refinements)

Documentation

Documentation Index

agni's People

Contributors

itadapter avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.