Introduction

Welcome to the documentation website Frisbee!

This is where you'll find everything you need to start developing your own messaging protocol with Frisbee, whether it's something simple like a message queue, or something complex like a PUB/SUB system.

Please be advised: Frisbee is currently in Alpha, and the API may change between major versions. If you find any bugs or issues we recommend opening an issue in our Github Repository.

What is Frisbee?

Frisbee is a messaging framework unlike any other. Messaging frameworks in general have been around for years, and as distributed systems become the norm, it's become more and more important to have efficient, reliable communication protocols.

Well-defined protocols like NATS or Kafka are good at what they do, however they are designed for very specific use cases, are difficult to embed, and in general aren't very flexible.

Systems like GRPC do provide more flexibility, however the overhead of GRPC and the requirement of Protocol Buffers can add unnecessary bloat to applications.

Frisbee addresses all of these concerns by building on the concept of "Bring Your Own Protocol". Frisbee allows you to plug in your own message types and custom reaction logic, and the framework will handle complex plumbing for you. This allows developers to create their own, unique messaging protocols without needing to reinvent the wheel.

On top of flexibility and ease of use, we've baked performance right into Frisbee. As you go through the documentation you'll discover how you can optimize your protocol for the best throughput and how Frisbee will handle all the heavy lifting for you.

Use Cases

Because of Frisbee's inherent flexibility, it has the potential to be used for a myriad of applications.

Unlike NATS, the Frisbee server is designed to be embedded in your Golang applications, which makes it perfect for:

Distributed Cloud Systems

  • Microservices
  • Service Mesh
  • Event Streaming (Observability, Alerting, Analytics)
  • Data Pipelines (ETL)
  • Task Queues
  • PUB/SUB Systems
  • Reverse Proxies

Control Planes

  • IoT Systems
  • Embedded Edge Devices
  • Telemetry Data
  • Remote Control/Command Systems

Documentation and Support

This documentation is where you'll find everything you need to start using the tools that we've built. Loophole Labs is dedicated to building the very best in developer tooling, and we know that good, clean documentation is a big part of that.

As such, this documentation is also completely open-source! We keep it up-to-date, but you might find some typos or mistakes. Help us make it better by submitting a pull request or issue!

For Support We Recommend You Join Our Slack. We love working with our amazing open-source community, and spend a lot of time there answering questions and discussing future improvements.

If you like the work we're doing and want to contribute, we encourage new issues and PRs and often have bugs tagged by difficulty on our Github for first-time contributors!

Last Updated: 2021-06-07