/memphis-k8s

Memphis is a Real-Time Data Processing Platform

Primary LanguageSmartyApache License 2.0Apache-2.0

Memphis light logo

Memphis light logo

Real-Time Data Processing Platform

Memphis UI

Sandbox - Docs - Twitter - YouTube

Discord Code Of Conduct GitHub release (latest by date)

Memphis{dev} is a message broker for developers made out of devs' struggles develop around message brokers.
Enables devs to achieve all other message brokers' benefits in a fraction of the time.
Focusing on automatic optimization, schema management, inline processing, and troubleshooting abilities. All under the same hood. Utilizing NATS core.

📸 Screenshots

Dashboard Station (Topic) overview CLI
Dashboard Station Overview drawing

⭐️ Why

Working with data streaming is HARD.
As a developer, you need to build a dedicated pipeline per data source,
change the schema, individual analysis, enrich the data with other sources, it constantly crashes, it requires adaptation to different rate limits, constantly change APIs, and scale for better performance 🥵 .
It takes time and resources that you don't have.

Message broker is the answer. In short - It's an event-store.
Message broker acts as the middleman and supports streaming architecture,
but then you encounter Apache Kafka and its documentation and run back to the monolith and batch jobs.
Give memphis{dev} a spin before.

👉 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

✨ Features

v0.3.0

  • 🚀 Fully optimized message broker in under 3 minutes
  • 💻 Easy-to-use UI, CLI, and SDKs
  • 📺 Data-level observability
  • ☠️ Dead-Letter Queue with automatic message retransmit
  • SDKs: Node.JS, Go, Python, Typescript, NestJS
  • 🐳☸ Runs on your Docker or Kubernetes
  • 👨‍💻 Community driven

Roadmap

  • Embedded schema store and transformation
  • Inline processing
  • Connectors and analysis functions

🚀 Getting Started

Sandbox
Installation videos

Helm for Kubernetes

helm repo add memphis https://k8s.memphis.dev/charts/ && \
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
Tutorial: Build an event-driven food delivery app

High-Level Architecture

memphis.dev-logo

Local access

Via Kubernetes

To access Memphis UI from localhost, run the below commands:
  1. kubectl port-forward service/memphis-ui 9000:80 --namespace memphis > /dev/null &

To access Memphis using CLI or SDK from localhost, run the below commands:
  2. kubectl port-forward service/memphis-cluster 7766:7766 6666:6666 5555:5555 --namespace memphis > /dev/null &

Dashboard: http://localhost:9000
Memphis broker: localhost:5555 (Management Port) / 7766 (Data Port) / 6666 (TCP Port)

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

Via Docker

Dashboard - http://localhost:9000
Broker - localhost:7766
Control-Plane - localhost:5555/6666

Beta

Memphis{dev} is currently in Beta version. This means that we are still working on essential features like real-time messages tracing,
Schema registry, and inline processing, as well as making more SDKs and supporting materials.

How does it affect you? Well... mostly it doesn't.
(a) The core of memphis broker is highly stable
(b) We learn&fix fast

But we need your love, and any help we can get by stars, PR, feedback, issues, and enhancments.
Read more on https://memphis.dev/docs

Support

Ask a question about Memphis{dev} or related

You can ask questions, and participate in discussions about Memphis{dev}-related topics in the Memphis Discord channel.

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're missing a capability that would make development easier and more robust, please Submit feature request.

If a 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 (emoji key):