Skip to content

memphisdev/memphis

Repository files navigation

Github (4)

Discord Code Of Conduct GitHub release (latest by date)

Cloud - Academy - Docs - X - YouTube

Memphis.dev Is The First Data Streaming Platform Designed For Backend Developers
To Build Event-driven And Real-time Features Faster Than Ever.

cloud_native 2 (5)

20 About

Before Memphis came along, handling ingestion and processing of events on a large scale took months to adopt and was a capability reserved for the top 20% of mega-companies. Now, Memphis opens the door for the other 80% to unleash their event and data streaming superpowers quickly, easily, and with great cost-effectiveness.

🚀 Getting Started

Tutorials | Videos

☸ 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

✨ Key Features v1.4.2

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 Functions for real-time processing
20 Graph visualization
20 Storage tiering
20 SDKs: Node.JS, Go, Python, Typescript, NestJS, REST, .NET, Kotlin
20 Kubernetes-native
20 Community driven

End-to-end Observability "Feel" your producers, consumers, and records
Screenshot 2023-09-29 at 10 17 01
Quickly analyze system health using a graph overview Never lose a message with automatic dead-letter
Screenshot 2023-09-29 at 10 17 12
Save up 96% storage costs with Storage tiering Increase data quality with schemas
Screenshot 2023-09-29 at 10 17 58 Screenshot 2023-09-29 at 10 16 40

Public case studies

Network diagram

memphis.dev Architecture

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
Nack a Message
Send a message to dead-letter
Get message time sent
Fetch
Message delay
Get Headers
Get message sequence number
Destroying a Consumer
Check if broker is connected
Consumer prefetch
Schema deserialization

👉 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 🙋‍♂️🤝

Have any questions ❓

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.