defmodule Yggdrasil.Adapter.Postgres do @moduledoc """ Yggdrasil adapter for Postgres. The name of the channel must be a binary e.g: Subscription to channel: ``` iex(2)> channel = %Yggdrasil.Channel{name: "pg_channel", adapter: :postgres} iex(3)> Yggdrasil.subscribe(channel) :ok iex(4)> flush() {:Y_CONNECTED, %Yggdrasil.Channel{name: "pg_channel", (...)}} ``` Publishing message: ``` iex(5)> Yggdrasil.publish(channel, "foo") :ok ``` Subscriber receiving message: ``` iex(6)> flush() {:Y_EVENT, %Yggdrasil.Channel{name: "pg_channel", (...)}, "foo"} ``` The subscriber can also unsubscribe from the channel: ``` iex(7)> Yggdrasil.unsubscribe(channel) :ok iex(8)> flush() {:Y_DISCONNECTED, %Yggdrasil.Channel{name: "pg_channel", (...)}} ``` """ use Yggdrasil.Adapter, name: :postgres end