Skip to content

ProjectLibertyLabs/gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Gateway

Gateway is a suite of microservices designed to simplify interactions with the Frequency blockchain, bridging the gap between Web2 and Web3 development.

πŸ“— Table of Contents

πŸ“– Gateway Services

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.

(back to top)

πŸš€ Live Docs

Visit our Live API Documentation to start exploring the Gateway services.

Access Our Live API Docs Here

(back to top)

πŸ”­ Architecture Maps

Overview 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
Loading

(back to top)

Gateway Microservices

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

(back to top)

Key Features of Gateway Microservices

  • 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.

(back to top)

πŸ’» Getting Started

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.

πŸš€ Quick Start Guide

Follow these steps to quickly get all Gateway services up and running:

  1. Prerequisites: In order to run this project you need:
  • Docker or Docker compatible layer for running Gateway Services
  • mdBook for building documentation
  1. Clone the Repository:
  git clone [email protected]:ProjectLibertyLabs/gateway.git
  cd gateway
  1. Start all Services
  ./start.sh

This script will start all Gateway microservices using Docker.

  1. Stop all Services
  ./stop.sh

Use this script when you need to stop all running Gateway services.

  1. Build Gateway Documentation
  cd docs
  mdbook build
  1. Build and Serve Gateway Documentation
  cd docs
  mdbook serve

Getting Started with Microservices

To begin using these microservices:

  1. Decide which services your application needs.
  2. Review the API documentation for each required service. See the Live Docs or README for more details.
  3. 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.

(back to top)

Deployment

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.

(back to top)

🀝 Contributing

Contributions, issues, and feature requests are welcome!

(back to top)

πŸ™ Acknowledgements

Thank you to Frequency for assistance and documentation making this possible.

(back to top)

πŸ“ License

This project is Apache 2.0 licensed.

(back to top)