GitPedia

Ray

项目停止更新,新项目:https://github.com/RayTale/Vertex

From RayTale·Updated May 29, 2026·View on GitHub·
·Archived

This is a high-performance distributed framework that integrates Actor, Event Sourcing, and Eventual consistency (see: http://dotnet.github.io/orleans/) The project is written primarily in C#, distributed under the MIT License license, first published in 2017. Key topics include: actor, cqrs, distributed-systems, event-driven, event-sourcing.

Latest release: v2.4.0Fix bug,no break change.
April 13, 2020View Changelog →

Ray

Join the chat at https://gitter.im/RayTale/Ray

This is a high-performance distributed framework that integrates Actor, Event Sourcing, and Eventual consistency (see: http://dotnet.github.io/orleans/)

Case start steps

In the case is a simple transactionless transfer function

  1. Install (mongodb or postgresql or mysql or sqlserver) and (rabbitmq or kafka).

  2. Select the event persistence method and EventBus in Program.cs of the Ray.Host project.

csharp
var builder = new SiloHostBuilder() .UseConfiguration(config) .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(Account).Assembly).WithReferences()) .ConfigureServices((context, servicecollection) => { //Register postgresql as an event repository servicecollection.AddPostgreSQLStorage(config => { config.ConnectionDict.Add("core_event", "Server=127.0.0.1;Port=5432;Database=Ray;User Id=postgres;Password=XXXX;Pooling=true;MaxPoolSize=20;"); }); //Configure distributed transaction manager (not required, only need to be set if distributed transaction is required) servicecollection.AddPostgreSQLTxStorage(options => { options.ConnectionKey = "core_event"; options.TableName = "Transaction_TemporaryRecord"; }); servicecollection.PSQLConfigure(); }) .Configure<MongoConfig>(c => c.Connection = "mongodb://127.0.0.1:28888") .Configure<RabbitConfig>(c => { c.UserName = "admin"; c.Password = "XXXX"; c.Hosts = new[] {"127.0.0.1:5672" }; c.MaxPoolSize = 100; c.VirtualHost = "/"; }) .ConfigureLogging(logging => logging.AddConsole());

Third, modify the configuration information of Ray.Client.

csharp
var config = ClientConfiguration.LocalhostSilo(); var client = new ClientBuilder() .UseConfiguration(config) .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(IAccount).Assembly).WithReferences()) .ConfigureLogging(logging => logging.AddConsole()) .Build(); await client.Connect();

Fourth, start Ray.Host

Five, start Ray.Client

Contributors

Showing top 7 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from RayTale/Ray via the GitHub API.Last fetched: 6/18/2026