Frequency Developer Gateway is a suite of microservices designed to simplify interactions with the Frequency blockchain, bridging the gap between Web2 and Web3 development.
- π About the Project
- π Live OpenAPI Docs
- π Architecture Map
- π Frequency Developer Gateway Microservices
- π» Getting Started
- π« Deployment
- π€ Contributing
- π Acknowledgments
- π License
Gateway is a collection of services designed to simplify interactions with the Frequency blockchain. It bridges the gap between Web2 and Web3, allowing developers to interact with Frequency as easily as they would with any traditional Web2 API.
Key features:
- Modular architecture: Use each service independently to fit your specific needs
- Simplified blockchain interactions: Abstract away complex blockchain operations
- Web2-like experience: Familiar REST API patterns for Web2 developers
For a practical implementation example, check out our Social App Template here, which demonstrates how to integrate these services into a full-fledged application.
Visit our Live API Documentation to start exploring the Gateway services.
flowchart LR;
subgraph Custom Logic
C[Client] --> S(Server)
end
subgraph Gateway Microservices
AS[Account Service]
GS[Graph Service]
CPS[Content Publishing Service]
CWS[Content Watcher Service]
end
S --> AS
S --> GS
S --> CPS
S --> CWS
subgraph Public
F(Frequency Network)
end
AS --> F
GS --> F
CPS --> F
CWS --> F
Gateway consists of four independent microservices, each designed to handle specific aspects of interaction with the Frequency blockchain. Below is a detailed overview of each service:
Service | Description | API Documentation | README |
---|---|---|---|
Account Service | Manages user accounts and authentication on the Frequency blockchain using Sign In With Frequency. It handles tasks such as account creation and key management. | API Docs | README |
Graph Service | Manages social connections and relationships between users on the Frequency network. It handles operations like following/unfollowing users and retrieving social graphs. | API Docs | README |
Content Publishing Service | Facilitates the creation and publication of content on the Frequency blockchain. It manages tasks such as posting messages, attachments, replies, and reactions. | API Docs | README |
Content Watcher Service | Monitors and retrieves content updates from the Frequency blockchain. It allows applications to efficiently track new content as it's published. | API Docs | README |
- Modularity: Each service can be used independently, allowing developers to integrate only the functionalities they need.
- Scalability: The microservice architecture allows for easy scaling of individual services based on demand.
- Simplified Blockchain Interaction: These services abstract complex blockchain operations, providing a familiar API-based interface for developers.
- Comprehensive Documentation: Each service comes with detailed API documentation and a README file for easy integration and usage.
Gateway offers flexibility in how you can use its services. You can either quickly set up all services or selectively use specific microservices based on your needs. Below, we provide both a Quick Start guide for setting up all services and information on how to get started with individual microservices.
Follow these steps to quickly get all Gateway services up and running:
- Prerequisites: In order to run this project you need:
- Clone the Repository:
git clone git@github.com:ProjectLibertyLabs/gateway.git
cd gateway
- Start all Services
./start.sh
This script will start all Gateway microservices using Docker.
- Stop all Services
./stop.sh
Use this script when you need to stop all running Gateway services.
- Build Gateway Documentation
cd docs
mdbook build
- Build and Serve Gateway Documentation
cd docs
mdbook serve
To begin using these microservices:
- Decide which services your application needs.
- Review the API documentation for each required service. See the Live Docs or README for more details.
- Integrate the service APIs into your application using the documentation as a guide.
For a practical example of how these services can be used together, check out our Social App Template.
Deployment of the Gateway services have various options. See the Live Docs for more details.
Deployment of the Gateway documentation occurs via merge to main
branch via GitHub Actions.
Contributions, issues, and feature requests are welcome!
Thank you to Frequency for assistance and documentation making this possible.
This project is Apache 2.0 licensed.