Coder Social home page Coder Social logo

mrchocha / memphis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from memphisdev/memphis

0.0 0.0 0.0 277.29 MB

Memphis.dev is an intelligent, frictionless message broker. Made to enable developers to build real-time and streaming features fast.

Home Page: https://docs.memphis.dev

License: Other

Shell 0.24% JavaScript 13.67% Go 82.73% HTML 0.06% Dockerfile 0.01% SCSS 3.29%

memphis's Introduction

Banner- Memphis dev streaming

Memphis is an intelligent, frictionless message broker.
Made to enable developers to build real-time and streaming apps fast.

CNCF Silver Member

CNCF Silver Member

Cloud - Docs - Twitter - YouTube

Discord Code Of Conduct GitHub release (latest by date)

Memphis.dev is more than a broker. It's a new streaming stack.

It significantly accelerates the development of real-time applications that require a streaming platform with
high throughput, low latency, easy troubleshooting, fast time-to-value,
minimal platform operations, and all the observability you can think of.

🫣 A world without Memphis

When your application requires a message broker or a queue,
Implementing one will require you to -

  • Build a dead-letter queue, create observability, and a retry mechanism
  • Build a scalable environment
  • Create client wrappers
  • Tag events to achieve multi-tenancy
  • Enforce schemas and handle transformations
  • Handle back pressure. Client or queue side
  • Configure monitoring and real-time alerts
  • Create a cloud-agnostic implementation
  • Create config alignment between production to a dev environment
  • Spent weeks and months learning the internals through archival documentation, ebooks, and courses
  • Onboard your developers
    And the list continues...

Or, you can just use Memphis and focus your resources on tasks that matter 😎

✨ Key Features v1.3.0

Roadmap

20 Production-ready message broker in under 3 minutes
20 Easy-to-use UI, CLI, and SDKs
20 Data-level observability
20 Dead-Letter Queue with automatic message retransmit
20 Schemaverse - Embedded schema management for produced data (Protobuf/JSON/GraphQL/Avro)
20 Graph visualization
20 Storage tiering
20 SDKs: Node.JS, Go, Python, Typescript, NestJS, REST, .NET, Kotlin
20 Kubernetes-native
20 Community driven

Public case studies

πŸš€ Getting Started

Helm for Kubernetes☸

helm repo add memphis https://k8s.memphis.dev/charts/ --force-update && \
helm install my-memphis memphis/memphis --create-namespace --namespace memphis

Docker🐳 Compose

curl -s https://memphisdev.github.io/memphis-docker/docker-compose.yml -o docker-compose.yml && \
docker compose -f docker-compose.yml -p memphis up

connect your first app

Tutorials
Installation videos

High-Level Architecture

memphis.dev Architecture

Local access

Via Kubernetes

To access Memphis using UI/CLI/SDK from localhost, run the below commands:

  - kubectl port-forward service/memphis 6666:6666 9000:9000 7770:7770 --namespace memphis > /dev/null &

For interacting with the broker via HTTP:

  - kubectl port-forward service/memphis-rest-gateway 4444:4444 --namespace memphis > /dev/null &

Dashboard/CLI: http://localhost:9000
Broker: localhost:6666 (Client Connections)
REST gateway: localhost:4444 (Data + Mgmt)

For Production Environments Please expose the UI, Cluster, and Control-plane via k8s ingress / load balancer / nodeport

Via Docker

Dashboard/CLI: http://localhost:9000
Broker: localhost:6666

SDKs supported features

Feature Go Python JS .NET Java Rust
Connection βœ… βœ… βœ… βœ… βœ… βœ…
Disconnection βœ… βœ… βœ… βœ… βœ… βœ…
Create a station βœ… βœ… βœ… βœ… ❌ βœ…
Destroy a station βœ… βœ… βœ… βœ… ❌ βœ…
Retention βœ… βœ… βœ… βœ… ❌ βœ…
Retention values βœ… βœ… βœ… βœ… ❌ βœ…
Storage types βœ… βœ… βœ… βœ… ❌ βœ…
Create a new schema βœ… βœ… βœ… βœ… ❌ ❌
Enforce a schema Protobuf βœ… βœ… βœ… βœ… ❌ ❌
Enforce a schema Json βœ… βœ… βœ… βœ… ❌ 🚧 (WIP)
Enforce a schema GraphQL βœ… βœ… βœ… βœ… ❌ ❌
Enforce a schema Avro βœ… βœ… βœ… βœ… ❌ ❌
Detach a schema βœ… βœ… βœ… βœ… ❌ ❌
Produce βœ… βœ… βœ… βœ… βœ… βœ…
Add headers βœ… βœ… βœ… βœ… ❌ βœ…
Async produce βœ… βœ… βœ… βœ… ❌ βœ…
Message ID βœ… βœ… βœ… βœ… ? βœ…
Destroy a producer βœ… βœ… βœ… βœ… Partial βœ…
Consume βœ… βœ… βœ… βœ… βœ… βœ…
Context to message handler βœ… βœ… βœ… βœ… ❌ Not Applicable
Ack a message βœ… βœ… βœ… βœ… βœ… βœ…
Fetch βœ… βœ… βœ… βœ… βœ… ❌
Message delay βœ… βœ… βœ… βœ… ❌ βœ…
Get Headers βœ… βœ… βœ… βœ… ❌ βœ…
Get message sequence number βœ… βœ… βœ… βœ… βœ… βœ…
Destroying a Consumer βœ… βœ… βœ… βœ… ❌ βœ…
Check if broker is connected βœ… βœ… βœ… βœ… βœ… βœ…
Consumer prefetch βœ… ❌ ❌ βœ… ❌ βœ…

πŸ‘‰ Use-cases

  • Async task management
  • Real-time streaming pipelines
  • Data ingestion
  • Cloud Messaging
    • Services (microservices, service mesh)
    • Event/Data Streaming (observability, analytics, ML/AI)
  • Queuing
  • N:N communication patterns
  • Ingest Grafana Loki logs at scale

Support πŸ™‹β€β™‚οΈπŸ€

Ask a question ❓ about Memphis.dev. or something related to us:

We welcome you to our discord server with your questions, doubts and feedback.

Create a bug 🐞 report

If you see an error message or run into an issue, please create bug report. This effort is valued and it will help all Memphis{dev} users.

Submit a feature πŸ’‘ request

If you have an idea, or you think that we're missing a capability that would make development easier and more robust, please Submit feature request.

If an issue❗with similar feature request already exists, don't forget to leave a "+1". If you add some more information such as your thoughts and vision about the feature, your comments will be embraced warmly :)

Contributing

Memphis.dev is an open-source project.
We are committed to a fully transparent development process and appreciate highly any contributions.
Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as part of the Memphis.dev community.

Please refer to our Contribution Guidelines and Code of Conduct.

Contributors ✨

Thanks goes to these wonderful people ❀:

License πŸ“ƒ

Memphis is open-sourced and operates under the "Memphis Business Source License 1.0" license Built out of Apache 2.0, the main difference between the licenses is: "You may make use of the Licensed Work (i) only as part of your own product or service, provided it is not a message broker or a message queue product or service; and (ii) provided that you do not use, provide, distribute, or make available the Licensed Work as a Service. A β€œService” is a commercial offering, product, hosted, or managed service, that allows third parties (other than your own employees and contractors acting on your behalf) to access and/or use the Licensed Work or a substantial set of the features or functionality of the Licensed Work to third parties as a software-as-a-service, platform-as-a-service, infrastructure-as-a-service or other similar services that compete with Licensor products or services." Please check out License to read the full text.

memphis's People

Contributors

0xflotus avatar abrl91 avatar akarsh-jain-790 avatar avitaltrifsik avatar avrham avatar avrhamneeman avatar aydin101 avatar bazen-teklehaymanot avatar big-vi avatar bjwschaap avatar daniel-davidd avatar danielsinai avatar devpahuja avatar elchinmemphis avatar idanasulinmemphis avatar idonaaman123 avatar juneezee avatar krupalitrivedi avatar orellazri avatar ormemphis avatar rnowling avatar rnowling-memphis avatar saarryan avatar saptarshisarkar12 avatar shay23b avatar shohamroditimemphis avatar svetamemphis avatar turulix avatar valerabr avatar yanivbh1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.