All Projects → mosuka → phalanx

mosuka / phalanx

Licence: Apache-2.0 License
Phalanx is a cloud-native distributed search engine that provides endpoints through gRPC and traditional RESTful API.

Programming Languages

go
31211 projects - #10 most used programming language
CSS
56736 projects
Makefile
30231 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to phalanx

Grpcjsontranscoder
A filter which allows a RESTful JSON API client to send requests to .NET web server over HTTP and get proxied to a gRPC service
Stars: ✭ 97 (-49.48%)
Mutual labels:  grpc, cloud-native, restful-api
Talos
Talos is a modern OS for Kubernetes.
Stars: ✭ 2,390 (+1144.79%)
Mutual labels:  grpc, cloud-native
Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (+1032.81%)
Mutual labels:  grpc, cloud-native
Je
A distributed job execution engine for the execution of batch jobs, workflows, remediations and more.
Stars: ✭ 30 (-84.37%)
Mutual labels:  engine, distributed
Coolstore Microservices
A full-stack .NET microservices build on Dapr and Tye
Stars: ✭ 1,903 (+891.15%)
Mutual labels:  grpc, cloud-native
Kratos
A modular-designed and easy-to-use microservices framework in Go.
Stars: ✭ 15,844 (+8152.08%)
Mutual labels:  grpc, cloud-native
Netcorekit
💗 A crafted toolkit for building cloud-native apps on the .NET platform
Stars: ✭ 248 (+29.17%)
Mutual labels:  grpc, cloud-native
insightedge
InsightEdge Core
Stars: ✭ 22 (-88.54%)
Mutual labels:  distributed, cloud-native
bridgx
BridgX is an Open Source Cloud-Native infrastructure engine aimed to split and manage Hybrid-Cloud&Multi-Cloud computing power, schedule and scale Containers.
Stars: ✭ 204 (+6.25%)
Mutual labels:  engine, cloud-native
go-zero
A cloud-native Go microservices framework with cli tool for productivity.
Stars: ✭ 23,294 (+12032.29%)
Mutual labels:  cloud-native, restful-api
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-35.42%)
Mutual labels:  grpc, cloud-native
liftbridge-api
Protobuf definitions for the Liftbridge gRPC API. https://github.com/liftbridge-io/liftbridge
Stars: ✭ 15 (-92.19%)
Mutual labels:  grpc, cloud-native
Grpc Gateway
The gRPC-Gateway is a plugin of the Google protocol buffers compiler protoc. It reads protobuf service definitions and generates a reverse-proxy server which translates a RESTful HTTP API into gRPC. This server is generated according to the google.api.http annotations in your service definitions.
Stars: ✭ 12,223 (+6266.15%)
Mutual labels:  grpc, restful-api
Diztl
Share, discover & download files in your network 💥
Stars: ✭ 162 (-15.62%)
Mutual labels:  grpc, distributed
Memo
The memo elastic and resilient key-value store.
Stars: ✭ 111 (-42.19%)
Mutual labels:  grpc, distributed
Go Chassis
a microservice framework for rapid development of micro services in Go with rich eco-system
Stars: ✭ 2,428 (+1164.58%)
Mutual labels:  grpc, cloud-native
Blast
Blast is a full text search and indexing server, written in Go, built on top of Bleve.
Stars: ✭ 934 (+386.46%)
Mutual labels:  grpc, restful-api
Gnes
GNES is Generic Neural Elastic Search, a cloud-native semantic search system based on deep neural network.
Stars: ✭ 1,178 (+513.54%)
Mutual labels:  grpc, cloud-native
spicedb
Open Source, Google Zanzibar-inspired fine-grained permissions database
Stars: ✭ 3,358 (+1648.96%)
Mutual labels:  distributed, cloud-native
iris
Distributed streaming key-value storage
Stars: ✭ 55 (-71.35%)
Mutual labels:  grpc, distributed

Phalanx

Phalanx is a cloud-native distributed search engine written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.
Phalanx implements a cluster formation by hashicorp/memberlist and managing index metadata on etcd, so it is easy to bring up a fault-tolerant cluster.
Metrics for system operation can also be output in Prometheus exposition format, so that monitoring can be done immediately using Prometheus.
Phalanx is using object storage for the storage layer, it is only responsible for the computation layer, such as indexing and retrieval processes. Therefore, scaling is easy, and you can simply add new nodes to the cluster.
Currently, it is an alpha version and only supports Amazon S3 and MinIO as the storage layer, but in the future it will support Google Cloud Storage, and Azure Blob Storage.

Architecture

Phalanx is a master node-less distributed search engine that separates the computation layer for searching and indexing from the storage layer for persisting the index. The storage layer is designed to use object storage on public clouds such as Amazon S3, Google Cloud Storage, and Azure Blob Storage.

Phalanx makes it easy to bring up a distributed search engine cluster. A phalanx cluster simply adds nodes when its resources are run out. Of course, it can also simply shut down nodes that are not needed. Indexes are managed by object storage, so there is no need to worry about index placement. No complex operations are required. Clusters are very flexible and scalable.

Phalanx stores index metadata in etcd. The metadata stores the index and the path of the shards under that index. The nodes process the distributed index based on the metadata stored in etcd.

Phalanx also uses etcd as a distributed lock manager to ensure that updates to a single shard are not made on multiple nodes at the same time.

phalanx_architecture

Build

Building Phalanx as following:

% git clone https://github.com/mosuka/phalanx.git
% cd phalanx
% make build

You can see the binary file when build successful like so:

% ls ./bin
phalanx

Table of Contents

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].