Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions learn-more/community/README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
---
description: Join the Hyperswitch Community
description: Join the Hyperswitch community to connect, contribute, and grow together
---

# Community

## Hyperswitch Community

Hyperswitch is more than an open-source payments orchestration engine. Its a global community of developers, product people, and payments experts who collaborate to make payments transparent, reliable, and developer-first. Whether you want to contribute to the codebase, get help with integration, or simply exchange ideas, our community spaces are open and welcoming.
Hyperswitch is more than an open-source payments orchestration engine. It's a global community of developers, product people, and payments experts who collaborate to make payments transparent, reliable, and developer-first. Whether you want to contribute to the codebase, get help with integration, or simply exchange ideas, our community spaces are open and welcoming.

### Community Touchpoints
## Community Touchpoints

#### 🗓️ Office Hours (Every Thursday, 11 AM ET / 8:30 PM IST)
### Office Hours (Every Thursday, 11 AM ET / 8:30 PM IST)

Drop into our weekly [Office Hours](https://meet.google.com/grq-pxuh-zvr) to connect directly with maintainers and contributors. 
Drop into our weekly [Office Hours](https://meet.google.com/grq-pxuh-zvr) to connect directly with maintainers and contributors.

* Live demos & product walkthroughs
* Open Q\&A on anything Hyperswitch
* Open Q&A on anything Hyperswitch
* A friendly space to exchange ideas

Bring your questions by filling out this [form](https://forms.gle/dtb2aiaS4bdYsHZK8), or just listen in (we have tons of dev who do this), youll always walk away learning something new.
Bring your questions by filling out this [form](https://forms.gle/dtb2aiaS4bdYsHZK8), or just listen in (we have tons of dev who do this), you'll always walk away learning something new.

***

#### 🔄 Community Sync
### Community Sync

Once a month, the whole [community](https://www.linkedin.com/company/90383802/admin/notifications/all/?viewEvents=true) comes together.

Expand All @@ -35,18 +35,18 @@ This is our town hall, so it's open, collaborative, and a chance to see Hyperswi

***

#### 🐙 GitHub
### GitHub

Our [GitHub repo](https://github.com/juspay/hyperswitch?utm_source=chatgpt.com) is where the magic happens.
Our [GitHub repo](https://github.com/juspay/hyperswitch) is where the magic happens.

* Star the project to follow along
* Star the project to follow along
* Explore **good first issues** to start contributing
* Open discussions and PRs to shape the roadmap
* Celebrate with us as the project continues to grow

***

#### 💬 Slack
### Slack

For real-time conversations, join the [Hyperswitch Slack](https://join.slack.com/t/hyperswitch-io/shared_invite/zt-39d4w0043-CgAyb75Kn0YldNyZpd8hWA).

Expand All @@ -59,18 +59,18 @@ Slack is our most active space! Please drop in and say hi!

***

### 🚀 Why Join?
## Why Join?

* Stay close to the roadmap and new releases
* Learn best practices from maintainers and peers
* Contribute to one of the fastest-growing open-source payment projects (30k + stars & growing)
* Contribute to one of the fastest-growing open-source payment projects (30k+ stars & growing)
* Build your expertise in Rust, orchestration, and open-source payments

***

👉 **Start your journey today:**
**Start your journey today:**

* [Star us on GitHub](https://github.com/juspay/hyperswitch?utm_source=chatgpt.com)
* 💬 [Join the Slack community](https://join.slack.com/t/hyperswitch-io/shared_invite/zt-39d4w0043-CgAyb75Kn0YldNyZpd8hWA)
* 🗓️ [Register for the next Community Sync](https://www.linkedin.com/company/90383802/admin/notifications/all/?viewEvents=true)
* 📺 [Join Office Hours](https://meet.google.com/grq-pxuh-zvr)
* [Star us on GitHub](https://github.com/juspay/hyperswitch)
* [Join the Slack community](https://join.slack.com/t/hyperswitch-io/shared_invite/zt-39d4w0043-CgAyb75Kn0YldNyZpd8hWA)
* [Register for the next Community Sync](https://www.linkedin.com/company/90383802/admin/notifications/all/?viewEvents=true)
* [Join Office Hours](https://meet.google.com/grq-pxuh-zvr)
47 changes: 22 additions & 25 deletions learn-more/community/community-guidelines.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,72 @@
---
description: >-
Code of conduct and Slack participation guide for the Hyperswitch open-source
community
description: Follow community guidelines and code of conduct for respectful collaboration
---

# Community Guidelines

🤝 Hyperswitch Community Code of Conduct & Slack Guidelines
## Hyperswitch Community Code of Conduct & Slack Guidelines

Version 1.0 | Last updated: April 2025

Welcome to the Hyperswitch community! This is a space where developers, contributors, and product builders collaborate to create the future of open-source payments. To keep this space welcoming, productive, and respectful, all members must follow the Code of Conduct and Slack guidelines below.

### 🧭 Code of Conduct
## Code of Conduct

#### Our Pledge
### Our Pledge

We are committed to providing a harassment-free experience for everyone, regardless of age, race, gender identity, disability, level of experience, nationality, or personal background. We pledge to behave in ways that foster a positive and inclusive environment.

#### Expected Behavior
### Expected Behavior

* Be respectful, kind, and inclusive
* Assume good intent; seek to understand before judging
* Share feedback constructively and with empathy
* Help others when you can; ask for help when needed
* Use appropriate channels and keep discussions relevant

#### Unacceptable Behavior
### Unacceptable Behavior

* Harassment, hate speech, discrimination, or threats
* Trolling, personal attacks, or aggressive criticism
* Sharing private information without consent
* Excessive self-promotion or unsolicited DMs

### 💬 Slack Participation Guidelines
## Slack Participation Guidelines

#### 1. Be a Good Citizen
### Be a Good Citizen

* Keep discussions respectful and on-topic
* Avoid heated arguments — move complex topics to threads
* Use inclusive language and emoji reactions to show appreciation

#### 2. Use Threads & Channels Properly
### Use Threads & Channels Properly

* Always reply in threads to avoid noise
* Use the right channels:
* \#dev-support – Technical questions here
* \#general – regular business discussion or Non-tech discussion
* #dev-support – Technical questions here
* #general – regular business discussion or Non-tech discussion
* Avoid cross-posting the same message in multiple channels

#### 3. Ask Good Questions
### Ask Good Questions

* Include relevant context: error logs, code snippets, links
* Be patient and avoid tagging multiple team members unless urgent

#### 5. Security, Privacy & Respect
### Security, Privacy & Respect

* Dont share sensitive data (API keys, access tokens, etc.)
* Dont screenshot or share Slack content outside without permission
* Don't share sensitive data (API keys, access tokens, etc.)
* Don't screenshot or share Slack content outside without permission
* Respect others' time and privacy in DMs

### 🔧 Moderation & Admins
## Moderation & Admins

Community moderators are here to ensure the space remains safe and welcoming.\
Community moderators are here to ensure the space remains safe and welcoming.
They may take action at their discretion to uphold these guidelines.

📩 Contact admins: DM @Neeraj Kumar in Slack
Contact admins: DM @Neeraj Kumar in Slack

### 📌 Quick Links
## Quick Links

* [🔗 Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)
* [🌐 Hyperswitch Website](https://hyperswitch.io)
* [🧑‍💻 GitHub Repository\
](https://github.com/juspay/hyperswitch)\
* [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)
* [Hyperswitch Website](https://hyperswitch.io)
* [GitHub Repository](https://github.com/juspay/hyperswitch)
22 changes: 11 additions & 11 deletions learn-more/hyperswitch-architecture/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: A 30,000 feet view of Hyperswitch's architecture
description: Get a comprehensive overview of Hyperswitch system architecture and components
icon: folder-tree
---

Expand All @@ -9,39 +9,39 @@ Hyperswitch comprises two distinct app services: **Router** and **Scheduler** wh

<figure><img src="https://github.com/juspay/hyperswitch/raw/main/docs/imgs/hyperswitch-architecture.png" alt=""><figcaption><p>Typical Deployment</p></figcaption></figure>

### Router
## Router

The Router is the main component of Hyperswitch, serving as the primary crate where all the core payment functionalities are implemented. It is a crucial component responsible for managing and coordinating different aspects of the payment processing system. Within the Router, the core payment flows serve as the central hub through which all payment activities are directed. When a payment request is received, it goes through the Router, which handles important processing and routing tasks.

### Scheduler
## Scheduler

Suppose a scenario where a customer has saved their card details in your application, but for security reasons, you want to remove the saved card information after a certain period. To automate this process, Scheduler comes into picture. It schedules a task with a specific time for execution and stores it in the database. When the scheduled time arrives, the job associated with the task starts executing, here in this case, allowing the saved card details to be deleted automatically. One other situation in which we use this service in Hyperswitch is when we want to notify the merchant that their api key is about to expire.

#### Producer (Job scheduler)
### Producer (Job scheduler)

The Producer is one of the components responsible for the Scheduler's functionality. Its primary responsibility is to handle the tracking of tasks which are yet to be executed. When the Router Service inserts a new task into the database, specifying a scheduled time, the producer retrieves the task from the database when the scheduled time is up and proceeds to group or batch these tasks together. These batches of tasks are then stored in a Redis queue, ready for execution, which will be picked up by consumer service.

#### Consumer (Job executor)
### Consumer (Job executor)

The Consumer is another key component of the Scheduler. Its main role is to retrieve batches of tasks from the Redis queue for processing, which were previously added by the Producer. Once the tasks are retrieved, the Consumer executes them. It ensures that the tasks within the batches are handled promptly and in accordance with the required processing logic.

### Database
## Database

#### Postgres
### Postgres

The application relies on a PostgreSQL database for storing various types of data, including customer information, merchant details, payment-related data, and other relevant information. The application maintains a master-database and replica-database setup to optimize read and write operations.

#### Redis
### Redis

In addition to the database, Hyperswitch incorporates Redis for two main purposes. It is used to **cache** frequently accessed data in order to decrease the application latencies and reduce the load on the database. It is also used as a **queuing mechanism** by the Scheduler.

### Locker
## Locker

The application utilizes a Rust locker built with a GDPR compliant PII (personal identifiable information) storage. It also uses secure encryption algorithms to be fully compliant with **PCI DSS** (Payment Card Industry Data Security Standard) requirements, this ensures that all payment-related data is handled and stored securely. You can find the source code of locker [here](https://github.com/juspay/hyperswitch-card-vault).

### Monitoring
## Monitoring

<figure><img src="https://github.com/juspay/hyperswitch/raw/main/docs/imgs/hyperswitch-monitoring-architecture.png" alt=""><figcaption><p>HyperSwitch Monitoring Architecture</p></figcaption></figure>
<figure><img src="https://github.com/juspay/hyperswitch/raw/main/docs/imgs/hyperswitch-monitoring-architecture.png" alt=""><figcaption><p>Hyperswitch Monitoring Architecture</p></figcaption></figure>

The monitoring services in Hyperswitch ensure the effective collection and analysis of metrics to monitor the system's performance.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: Learn how Hyperswitch achieves virtually zero latency overhead in payment processing
---

# A Payments Switch with virtually zero overhead

When it comes to payments, every millisecond counts. The difference between a seamless customer experience and a frustrating one often boils down to the speed and efficiency of payment processing.
Expand All @@ -10,23 +14,23 @@ Enter Hyperswitch, a game-changing solution designed to be lightning fast and ad

***

**Clarifying latency overhead**
## Clarifying latency overhead

> The latency overhead of Hyperswitch refers specifically to the time taken by the Hyperswitch application itself within the transaction flow.

While Hyperswitch optimizes its internal processes to add almost zero overhead, it's important to recognize that the overall transaction latency isn't solely determined by Hyperswitch alone. The entire transaction process involves multiple components, including the payment processor as shown below

| Component | Value |
| ------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Network latency between Client App and your server (starting point) | A (BAU) |
| <mark style="color:blue;">**Hyperswitch Application latency (hosted in your stack)**</mark> | <mark style="color:blue;">**B (negligible)**</mark> :zap: |
| Network latency between your server and payment processor | C (BAU) |
| Processor Latency | D (BAU) |
| **Total Transaction Latency** | **A+B+C+D** |
| Component | Value |
| --------- | ----- |
| Network latency between Client App and your server (starting point) | A (BAU) |
| **Hyperswitch Application latency (hosted in your stack)** | **B (negligible)** :zap: |
| Network latency between your server and payment processor | C (BAU) |
| Processor Latency | D (BAU) |
| **Total Transaction Latency** | **A+B+C+D** |

What Hyperswitch does is provide an option to connect to multiple processors at almost zero latency cost

### **How Hyperswitch achieves a near-invisible presence**
## How Hyperswitch achieves a near-invisible presence

At its core, Hyperswitch is a payments switch that effortlessly connects merchants with multiple payment processors. What sets it apart is its extraordinary speed and efficiency. Here's how Hyperswitch manages to be lightning fast and virtually overhead-free:

Expand Down Expand Up @@ -67,14 +71,14 @@ At its core, Hyperswitch is a payments switch that effortlessly connects merchan
</details>

{% hint style="info" %}
The latency of the entire Hyperswitch application is just \~25 ms
The latency of the entire Hyperswitch application is just ~25 ms
{% endhint %}

<figure><img src="../../.gitbook/assets/image (4) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

<div data-full-width="false"><figure><img src="../../.gitbook/assets/Screenshot 2023-10-23 at 12.07.08 AM.png" alt="" width="563"><figcaption></figcaption></figure></div>

### **Seamless Integration - Just another microservice in your system**
## Seamless Integration - Just another microservice in your system

One of the remarkable features of Hyperswitch is its ability to seamlessly integrate into your existing technology stack. By functioning like a system software, Hyperswitch becomes an integral part of your system, eliminating network latency between your application and the switch. This means there's almost zero overhead introduced into your system.

Expand All @@ -84,7 +88,7 @@ One of the remarkable features of Hyperswitch is its ability to seamlessly integ

**Improved Reliability**: By operating as a tightly integrated component, Hyperswitch can be configured and managed alongside the rest of your stack, allowing for comprehensive monitoring and ensuring high levels of reliability and availability.

### **Bottomline**
## Bottomline

By adding almost zero overhead, Hyperswitch ensures that the lion's share of the transaction's latency, as experienced by the end user, is determined by the payment processor's inherent processing time.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
---
description: >-
This page outlines the various payment flows you may come across while
building a connector.
description: Learn about connector payment flows including preprocessing and authorization patterns
---

# Connector Payment Flows

### Pre-processing
## Pre-processing

This refers to the two-step payment flow where preprocessing steps are executed before the main authorization call. If your connector does not use tokenization or does not require customer or access token flows, implement the pre-processing pattern described below. It's important to note that different connectors implement preprocessing differently. For example, Airwallex creates payment intents during preprocessing as one of the steps while Nuvei performs 3DS enrollment checks as a step. The preprocessing call does make a separate (second) call for the authorize flow. The preprocessing and authorization are implemented as distinct, sequential operations in Hyperswitch's payment processing pipeline.

Expand Down Expand Up @@ -43,7 +41,7 @@ This flow represents the core payment authorization logic executed once all prer
* **Preprocessing Steps**: Executes preprocessing logic
* **Connector Customer Creation**: Creates customer records at the connector level

#### **Decision Logic**
### Decision Logic

The flow includes intelligent decision-making capabilities:

Expand Down
Loading