/xcomponent

Develop microservices in C# using state machines.

Primary LanguageC#OtherNOASSERTION

Join the chat at https://gitter.im/XComponent/xcomponent NuGet Twitter URL

XComponent Resource Center

XComponent is a platform to easily create, monitor and share microservices. In 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.

Authentication component

Microservices are developed in C# (.NET 4.5.2 or above).

XComponent community edition provides the following tools :

  • For Windows only :
    • NuGet XCStudio : the IDE to design components and microservices
    • NuGet XCSpy : a test and monitoring tool for XComponent microservices
  • Multi platform tools :
    • NuGet XCBuild : the tool that generates and builds microservices designed with XCStudio
    • NuGet XCBridge : the WebSocket bridge to communicate with microservices through a WebSocket connection
    • NuGet XCRuntime : the execution environment for XComponent microservices
  • Online tools :
    • Website XCSpyWeb : the web version of XCSpy available online
  • Apis (to communicate with XComponent microservices through a reactive Api) :
    • npm Reactive XComponent JS Api : The Javascript Api that uses the XCBridge
    • NuGet Reactive XComponent .NET Api : The C# Api
    • github Reactive XComponent Python Api : The Python Api (Still under construction)

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 & Martin Fowler

Building Microservices with XComponent

  • Define your Components according to a business logic or a technical logic

Note: In XComponent, a “Component” is a set of state machines (micro-orchestration)

  • Link the components (Composition) between them
  • Create the APIs
  • Create your Microservices as sets of Components
  • Deploy your microservices and run them with XCRuntime (under Windows or Mono)

With XComponent, your microservices have the following avantages:

  • They can communicate each other in Real-Time
  • You can communicate with your microservices in Real-Time using XComponent Apis
  • You can easily resize your microservices
  • You can migrate from a Monolith to a full microservices architecture without a line of code !
  • 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
  • You can monitor in Real-Time the status of your microservices For a better understanding of XComponent, and for more details, we suggest to read the user guide or to jump to the Hello World sample.

Thanks to the Use Cases section, you will able to understand:

  • How to develop microservices with XCStudio
  • How to run them with XCRuntime
  • How to consume microservices with XComponent Apis

Prerequisite

Install

All samples will directly download XComponent Community Edition from Nuget. Nevertheless, if for some reasons, you need an MSI, you can get one in the releases page.

Documentation

User Guide

Use Cases

Click here to see XComponent examples.

It is a good starting point to understand how the XComponent platform works.

Test Framework

Click here to have details about the Test Framework.

Sequence Diagram Control

Click here to have details about the Sequence Diagram Control.

Questions ?

If you have any questions about this sample, please create a Github issue for us!

You can also join us on Slack!