{"id":30743391,"url":"https://github.com/xcomponent/xcomponent","last_synced_at":"2025-09-04T02:07:04.796Z","repository":{"id":1638402,"uuid":"37325425","full_name":"xcomponent/xcomponent","owner":"xcomponent","description":"Develop microservices in C# using state machines.","archived":false,"fork":false,"pushed_at":"2022-12-10T20:27:11.000Z","size":22959,"stargazers_count":18,"open_issues_count":23,"forks_count":8,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-08-30T06:36:08.065Z","etag":null,"topics":["architecture","microservice","microservices-architecture","mono","state-machine","xcomponent","xcomponent-apis","xcomponent-platform"],"latest_commit_sha":null,"homepage":"https://www.xcomponent.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xcomponent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-12T14:06:35.000Z","updated_at":"2023-10-11T04:50:57.000Z","dependencies_parsed_at":"2023-01-11T16:05:22.283Z","dependency_job_id":null,"html_url":"https://github.com/xcomponent/xcomponent","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/xcomponent/xcomponent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcomponent%2Fxcomponent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcomponent%2Fxcomponent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcomponent%2Fxcomponent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcomponent%2Fxcomponent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xcomponent","download_url":"https://codeload.github.com/xcomponent/xcomponent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcomponent%2Fxcomponent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273539317,"owners_count":25123499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architecture","microservice","microservices-architecture","mono","state-machine","xcomponent","xcomponent-apis","xcomponent-platform"],"created_at":"2025-09-04T02:07:03.745Z","updated_at":"2025-09-04T02:07:04.782Z","avatar_url":"https://github.com/xcomponent.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Join the chat at https://gitter.im/XComponent/xcomponent](https://badges.gitter.im/XComponent/xcomponent.svg)](https://gitter.im/XComponent/xcomponent?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![](http://slack.xcomponent.com/badge.svg)](http://slack.xcomponent.com/)\n[![NuGet](https://img.shields.io/nuget/dt/XComponent.Studio.Community.svg)](https://www.nuget.org/packages/XComponent.Studio.Community)\n[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/XComponent)\n\n# XComponent Resource Center\n\nXComponent is a platform to easily create, monitor and share **microservices**.\nIn XComponent, a microservice is a set of components. Each component is based on **state machines** (States machines are designed graphically). This approach is powerful and flexible because it enables you to size or resize your microservices as you want.\n\n![Authentication component](Documentation/Images/component_impl.jpg)\n\nMicroservices are developed in **C#** (.NET 4.5.2 or above).\n\nXComponent community edition provides the following tools :\n* For Windows only :\n  * [![NuGet](https://img.shields.io/nuget/v/XComponent.Studio.Community.svg)](https://www.nuget.org/packages/XComponent.Studio.Community) XCStudio : the IDE to design components and microservices\n  * [![NuGet](https://img.shields.io/nuget/v/XComponent.Spy.Community.svg)](https://www.nuget.org/packages/XComponent.Spy.Community)\n XCSpy : a test and monitoring tool for XComponent microservices\n* Multi platform tools :\n  * [![NuGet](https://img.shields.io/nuget/v/XComponent.Build.Community.svg)](https://www.nuget.org/packages/XComponent.Build.Community)\n XCBuild : the tool that generates and builds microservices designed with XCStudio\n  * [![NuGet](https://img.shields.io/nuget/v/XComponent.Bridge.Community.svg)](https://www.nuget.org/packages/XComponent.Bridge.Community)\n XCBridge : the WebSocket bridge to communicate with microservices through a WebSocket connection\n  * [![NuGet](https://img.shields.io/nuget/v/XComponent.Runtime.Community.svg)](https://www.nuget.org/packages/XComponent.Runtime.Community)\n XCRuntime : the execution environment for XComponent microservices\n* Online tools :\n  * [![Website](https://img.shields.io/website-up-down-green-red/http/shields.io.svg?label=spy)](https://spy.xcomponent.com) XCSpyWeb : the web version of XCSpy available online\n* Apis (to communicate with XComponent microservices through a reactive Api) :\n  * [![npm](https://img.shields.io/npm/v/reactivexcomponent.js.svg)](https://www.npmjs.com/package/reactivexcomponent.js)\nReactive XComponent JS Api : The Javascript Api that uses the XCBridge\n  * [![NuGet](https://img.shields.io/nuget/v/ReactiveXComponent.Net.svg)](https://www.nuget.org/packages/ReactiveXComponent.Net)\n Reactive XComponent .NET Api : The C# Api\n  * [![github](https://img.shields.io/badge/github-coming%20soon-yellow.svg)](https://github.com/xcomponent/ReactiveXComponent.py) Reactive XComponent Python Api : The Python Api (Still under construction)\n\n\u003e Note: \"Microservice architectural style is an approach to develop a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms. These services are built around business capabilities and independently deployable by fully automated deployment machinery.” *James Lewis \u0026 Martin Fowler*\n\n## Building Microservices with XComponent\n* Define your **Components** according to a business logic or a technical logic \n\n\u003e Note: In XComponent, a **“Component”** is a set of state machines (micro-orchestration)\n\n* Link the components (Composition) between them\n* Create the **APIs**\n* Create your Microservices as sets of **Components**\n* Deploy your microservices and run them with **XCRuntime** (under Windows or Mono)\n\nWith XComponent, your microservices have the following avantages:\n* They can communicate each other in Real-Time\n* You can communicate with your microservices in Real-Time using XComponent Apis\n* You can easily **resize** your microservices \n* You can migrate from a Monolith to a full microservices architecture without a line of code !\n* XComponent platform is fully asynchronous and it is running on the top of a RabbitMQ middleware. Nevertheless, the complexity of this kind of architecture is hidden to the developper\n* You can monitor in Real-Time the status of your microservices\nFor a better understanding of XComponent, and for more details, we suggest to read the [user guide](Documentation/README.md) or to jump to the [Hello World sample](Examples/xc.helloworld/README.md).\n\n\nThanks to the [Use Cases](Examples) section, you will able to understand:\n* How to develop microservices with XCStudio \n* How to run them with XCRuntime\n* How to consume microservices with XComponent Apis\n\n\n## Prerequisite\n* .NET 4.5.2 framework\n* Get [Visual Studio Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx)\n* A RabbitMQ middleware (3.5.1 version or later is recommanded) : [Download link for windows](https://www.rabbitmq.com/releases/rabbitmq-server/current/). \n\n## Install\n\nAll samples will directly download XComponent Community Edition from [Nuget](https://www.nuget.org/packages/XComponent.Studio.Community/). Nevertheless, if for some reasons, you need an MSI, you can get one in the [releases page](https://github.com/xcomponent/xcomponent/releases).\n\n## Documentation\n\n[User Guide](Documentation/README.md)\n\n## Use Cases\n\n[Click here](Examples) to see XComponent examples.\n\nIt is a good starting point to understand how the XComponent platform works.\n\n\n## Test Framework\n\n[Click here](TestFramework/README.md) to have details about the Test Framework.\n\n## Sequence Diagram Control\n\n[Click here](SequenceDiagram/README.md) to have details about the Sequence Diagram Control.\n\n## Questions ?\n\nIf you have any questions about this sample, please [create a Github issue for us](https://github.com/xcomponent/xcomponent/issues)!\n\nYou can also join us on [Slack](http://slack.xcomponent.com)!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcomponent%2Fxcomponent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxcomponent%2Fxcomponent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcomponent%2Fxcomponent/lists"}