1
Fork 0
mirror of https://github.com/finogeeks/Ligase.git synced 2025-12-07 13:40:36 +00:00
[Pull Mirror] Ligase is a Golang-based implementation of Matrix homeserver, powered by finogeeks https://www.finogeeks.com/Finchat
  • Go 99.8%
  • Shell 0.1%
Find a file
2021-09-22 16:34:16 +08:00
.github init Ligase 2020-06-03 13:41:57 +08:00
adapter merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
appservice Return to Apache license for dendrite work (#28) 2020-06-05 18:39:37 +08:00
bgmgr init Ligase 2020-06-03 13:41:57 +08:00
cache merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
cachewriter merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
clientapi merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
cmd merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
common merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
config merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
content merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
core init Ligase 2020-06-03 13:41:57 +08:00
dbupdates merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
dbwriter merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
docs/dev/git contribution guideline and maintainer notes (#72) 2020-08-16 22:57:35 +08:00
encryptoapi init Ligase 2020-06-03 13:41:57 +08:00
federation merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
logo init Ligase 2020-06-03 13:41:57 +08:00
model relation msg receipt handle (#52) 2020-08-12 10:35:53 +08:00
plugins merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
proxy merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
publicroomsapi init Ligase 2020-06-03 13:41:57 +08:00
pushapi feat: set sound on for messages (#104) 2020-12-26 09:59:58 +08:00
pushsender merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
rcsserver init Ligase 2020-06-03 13:41:57 +08:00
roomserver merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
skunkworks merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
storage merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
syncaggregate merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
syncserver fix: compile error (#95) 2020-09-17 16:44:08 +08:00
syncwriter relation msg receipt handle (#52) 2020-08-12 10:35:53 +08:00
tokenrewrite init Ligase 2020-06-03 13:41:57 +08:00
.gitignore merge from fix fed kafkasend to latest (#49) 2020-08-05 17:40:04 +08:00
build.sh feat: add fed add content entry (#43) 2020-07-13 09:04:58 +08:00
CONTRIBUTING.md contribution guideline and maintainer notes (#72) 2020-08-16 22:57:35 +08:00
docker-compose.yaml init Ligase 2020-06-03 13:41:57 +08:00
Dockerfile init Ligase 2020-06-03 13:41:57 +08:00
go.mod recover log module (#33) 2020-06-05 18:51:21 +08:00
go.sum init Ligase 2020-06-03 13:41:57 +08:00
INSTALL.md init Ligase 2020-06-03 13:41:57 +08:00
LICENSE init Ligase 2020-06-03 13:41:57 +08:00
LICENSE-APACHE init Ligase 2020-06-03 13:41:57 +08:00
Makefile init Ligase 2020-06-03 13:41:57 +08:00
README.md Update README.md 2021-09-22 16:34:16 +08:00
start.sh init Ligase 2020-06-03 13:41:57 +08:00

FinChat

A general purpose, open, Messsging As A Platform (MaaP) solution.

👉 https://www.finogeeks.com/Finchat 👈


Introduction

Ligase is a Golang-based implementation of Matrix home server, following the Matrix spec as defined at matrix.org. It has been used in production by an array of financial institutions in various scenarios, including but not limited to OTC-style trading (i.e in the bond trading market), collaborative workspace, stock brokerage, retail banking and more. It usually serves as the core to support more sophisticated financial applications running in secured, on-premise and regulation-compliant environments.

But nothing limits it as a powerful Instant Messaging server as well as a general purpose, open, Messsging As A Platform (MaaP) solution.

Alternatives to Synapse and Dendrite

Synapse and Dendrite are two reference implementation based upon the Matrix spec, implemented in Python and Golang, respectively. Here we provide yet another alternative, field-tested by a number of banks, stock brokerage houses and fintech companies since 2018. Financial applications require an IM with lower latency, better scalability, higher concurrency and stronger backend monitoring capabilities. We therefore derived a branch originally from Dendrite but since then parting our way from it to drill into a completely different implementation with a different architecture.

Architecture and other technological considerations

While sticking to the Matrix spec as much as it could be, this implementation has adopted the following approaches:

  • a Fan-in/Fan-out topology
  • a CQRS (Command and Query Responsibility Segregation) pattern
  • leveraging Kafka for event sourcing and stream message storage
  • micro-service based with full leverage to containers (i.e. Docker) and container choreography platforms (i.e. Kubernetes/Rancher)

A Cloud-native K8S application

The implementation will gradually take advantage of cloud facilities so as to reach the state of being cloud-native, inherently supporting DevOps. It deploys via docker-compose as a single node deployment. But it meets enterprise-grade requirements to run as a native K8S application, leveraging K8S' elasticity and resiliency. Integration with Prometheus gives IT operators a powerful monitoring tool.

Installation

Read the INSTALL

Contributing

Read the CONTRIBUTING

Troubleshooting

problems and known solutions

Support channels

Slack/Reddit/StackOverflow/FinChat

About Finogeeks

You can visit finogeeks.com to get more details.