All Projects → xigadee → Microservice

xigadee / Microservice

Xigadee is an open-source Microservice framework, developed by Paul Stancer and Guy Steel. The libraries provide a simple and consistent approach for building modern enterprise API and Microservice based solutions; specifically those solutions targeted on the Azure platform.

Projects that are alternatives of or similar to Microservice

Serverless
⚡ Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! –
Stars: ✭ 41,584 (+88376.6%)
Mutual labels:  microservice, serverless, serverless-framework, serverless-architectures
Webiny Js
Enterprise open-source serverless CMS. Includes a headless CMS, page builder, form builder and file manager. Easy to customize and expand. Deploys to AWS.
Stars: ✭ 4,869 (+10259.57%)
Mutual labels:  microservice, serverless, serverless-framework, serverless-architectures
Jazz
Platform to develop and manage serverless applications at an enterprise scale!
Stars: ✭ 254 (+440.43%)
Mutual labels:  serverless, azure, serverless-framework, serverless-architectures
Serverless Architectures Aws
The code repository for the Serverless Architectures on AWS book
Stars: ✭ 120 (+155.32%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Lambda Coding Round Evaluator
lambda-coding-round-evaluator is a Serverless application to automate coding round submission and evaluation. It helps you get rid of emails and easily filter out bad candidates. Yay!
Stars: ✭ 43 (-8.51%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Serverless Aws Lambda Node Postgres
Serverless AWS Lambda with Node.js,Postgres Rest API with Sequelize.
Stars: ✭ 18 (-61.7%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Serverless Step Functions
AWS Step Functions plugin for Serverless Framework ⚡️
Stars: ✭ 758 (+1512.77%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Awesome Serverless
DEPRECATED: Curated list of resources related to serverless computing and serverless architectures.
Stars: ✭ 2,049 (+4259.57%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Syncano Node
Syncano Toolkit for JavaScript development
Stars: ✭ 61 (+29.79%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Serverless Azure Functions
Serverless Azure Functions Plugin – Add Azure Functions support to the Serverless Framework
Stars: ✭ 213 (+353.19%)
Mutual labels:  serverless, azure, serverless-framework
Malagu
Malagu is a Serverless First, component-based, platform-independent, progressive application framework based on TypeScript.
Stars: ✭ 184 (+291.49%)
Mutual labels:  microservice, serverless, serverless-framework
Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (+672.34%)
Mutual labels:  microservice, serverless, serverless-framework
Midway
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈
Stars: ✭ 5,080 (+10708.51%)
Mutual labels:  serverless, azure, serverless-framework
Guide
Serverless Guide - An open-source definitive guide to serverless architectures.
Stars: ✭ 421 (+795.74%)
Mutual labels:  serverless, serverless-framework, serverless-architectures
Kubeless
Kubernetes Native Serverless Framework
Stars: ✭ 6,849 (+14472.34%)
Mutual labels:  serverless, serverless-architectures
Aws Serverless Auth Reference App
Serverless reference app and backend API, showcasing authentication and authorization patterns using Amazon Cognito, Amazon API Gateway, AWS Lambda, and AWS IAM.
Stars: ✭ 724 (+1440.43%)
Mutual labels:  serverless, serverless-architectures
Openwhisk Runtime Nodejs
Apache OpenWhisk Runtime NodeJS supports Apache OpenWhisk functions written in JavaScript for NodeJS
Stars: ✭ 43 (-8.51%)
Mutual labels:  serverless, serverless-architectures
Hands On Microservices With Csharp 8 And .net Core 3 Third Edition
Hands-On Microservices with C# 8 and .NET Core 3, Third Edition, published by Packt
Stars: ✭ 46 (-2.13%)
Mutual labels:  microservice, azure
Plugins
Serverless Plugins – Extend the Serverless Framework with these community driven plugins –
Stars: ✭ 850 (+1708.51%)
Mutual labels:  serverless, serverless-framework
Cadscenario personalisation
This is a end to end Personalisation business scenario
Stars: ✭ 10 (-78.72%)
Mutual labels:  serverless, azure

Xigadee

Xigadee is an open-source Microservice framework, developed by Paul Stancer and Guy Steel, and released under the Apache 2 license by Hitachi Consulting in 2016. You are free to use it within your own commercial applications without restriction.

The framework is a result of our experience - and frustration - over the past five years, in building large-scale distributed cloud applications for our enterprise customers.

We found that when constructing Microservices, we could spend as much time on building and testing the repeatable "plumbing" code (messaging, monitoring, communication, security etc.) as we did on the actual application business logic.

So our goal with Xigadee is to solve that challenge. To provide a consistent development approach; and more importantly - a set of reusable tools that we can apply to any type of Microservice application - while removing the drudgery and overhead of "re-inventing the Microservice-wheel" each time we construct a new distributed solution.

Please note: the current main branch of the code is being converted to support both .NET Standard 2.0 and .NET Framework 4.7 ready for release 2 of Xigadee. Ideally you should have Visual Studio 2017 v15.4 or later to build.

A quick demonstration

The Xigadee libraries are built using Microsoft's .NET technology, and have specific accelerators to target Platform-as-a-Service (PaaS) technologies in the Azure stack.

All the libraries utilise a simple declarative programming model to aid in the construction of the Microservice.

A quick sample of code from this unit test shows how a Microservice can be quickly constructed within a few lines of code. This code can be found in the 'PersistenceSingle' method:

PersistenceClient<Guid, Sample1> repo;

var p1 = new MicroservicePipeline("Local")
    .AddChannelIncoming("request")
        .AttachPersistenceManagerHandlerMemory(
              keyMaker: (Sample1 e) => e.Id
            , keyDeserializer: (s) => new Guid(s)
            , versionPolicy: ((e) => e.VersionId.ToString("N").ToUpperInvariant(), (e) => e.VersionId = Guid.NewGuid(), true)
        )
        .AttachPersistenceClient(out repo)
        .Revert()
    ;

p1.Start();

var sample = new Sample1() { Message = "Hello mom" };
var id = sample.Id;
//Run a set of simple version entity tests.
//Create
Assert.IsTrue(repo.Create(sample).Result.IsSuccess);
//Read
var result = repo.Read(id).Result;
Assert.IsTrue(result.IsSuccess);
Assert.IsTrue(result.Entity.Message == "Hello mom");

This service creates a quick memory-based entity store for the POCO class, Sample1, that supports CRUD (Create/Read/Update/Delete) functions for the entity, with optimistic locking, and additional versioning and search methods, based on a key field (Id) and optional version field (VersionId) that are defined in the entity.

If we were to use the Xigadee Azure library, we could replace the following method:

.AttachPersistenceManagerHandlerMemory(

with this method, which would switch it to use a DocumentDb (now CosmosDb) backed entity store:

.AttachPersistenceManagerDocumentDbSdk(

or this method to use a Azure Blob Storage collection instead:

.AttachPersistenceManagerAzureBlobStorage(

If you want a more in-depth explanation of how to build a new Microservice application using the Xigadee libraries, then jump to the following article: The 15-minute Microservice.

Feedback

Xigadee is in active development across a number of development projects, and is still very much a work-in-progress; we are still improving the code, extending the unit-test coverage, adding new features, and providing more detailed documentation and code examples.

We have recently shipped release 1.1 of the Framework, which has some key improvements in creating custom application logic. Our next version will be 2.0 which will be built under the .NET Standard 2.0, which will allow Xigadee applications to work with both traditional .NET Framework libraries, but also to use the new .NET Core multi-platform capabilities, such as Linux and ARM based systems.

We welcome feedback and suggestions for future features of the Framework. More importantly, if you are using the libraries and discover a bug, please report it here so we can track and fix it.

Quick guides

If you are new to Microservice development, then the following links gives you an overview of the technology and how a Microservice based application is composed.

NuGet Packages

Xigadee is made up of a set of libraries, which are listed below. They support different areas of Microservice functionality. These capabilities can be added to your project through the relevant NuGet packages.

  • Xigadee
    • This is the core root library that is used to create Microservice based solutions.
  • Xigadee Azure
    • This library allows for the seamless integration with many of the Azure platform PAAS services.
  • Xigadee Api Server
    • This package allows for the rapid development of API based services, and includes integration with the Unity DI framework.
  • Xigadee Api Client
    • This package speeds up the development of client libraries that consume API services.
  • Xigadee Console
    • This package is designed to help in building simple console based test harnesses, for your Microservice applications.
  • Xigadee Framework
    • This package is used to provide deeper integration in to the Windows platform, and supports features which are not part of the .NET Standard library set.

To read what's new in the latest NuGet release packages, please click here.

Legal Stuff

Parts of Xigadee are the copyright of Hitachi Consulting 2012-2017.

Xigadee is released in its entirety under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Created by: Paul Stancer
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].