fly_postgres_elixir

Library for working with local read-replica postgres databases and performing writes through RPC calls to other nodes in the primary Fly.io region. (by superfly)

Fly_postgres_elixir Alternatives

Similar projects and alternatives to fly_postgres_elixir

  • Mediawiki

    🌻 The collaborative editing software that runs Wikipedia. Mirror from https://gerrit.wikimedia.org/g/mediawiki/core. See https://mediawiki.org/wiki/Developer_access for contributing.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better fly_postgres_elixir alternative or higher similarity.

fly_postgres_elixir reviews and mentions

Posts with mentions or reviews of fly_postgres_elixir. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-19.
  • My Thoughts About Fly.io (So Far)
    2 projects | news.ycombinator.com | 19 May 2022
    https://github.com/superfly/fly_postgres_elixir

    It does this by sending writes to the primary region over RPC (via distributed elixir). The write is performed on a primary instance adjacent to the DB, then the result, and the postgres log-sequence-number, is sent back to the remote node. When the library gets a result of the RPC write, it blocks locally until its local read replica matches an LSN >= write LSN, then the result is returned to the caller

    This gives us read-your-own-writes for the end-user, and the calling code remains unchanged for standard code paths. This doesn't solve all classes of race conditions – for example you may broadcast a message over Phoenix.PubSub that causes a read on the remote node for data that isn't yet replicated, but typically you'd avoid an N query problem from pubsub in general by populating the data in the message on the publisher beforehand.

    There's no completely avoiding the fact you have a distributed system where the speed of light matters, but it's Fly's (and Phoenix's) goal to push those concerns back as far as possible. For read heavy apps, or apps that use caching layers for reads, developers already face these kinds of problems. If you think of your read-replicas as cache with a convenient SQL interface, you can avoid most foot guns.

    I'm happy to answer other questions as it relates to Phoenix, Fly or what Phoenix + Fly enables from my perspective.

Stats

Basic fly_postgres_elixir repo stats
1
91
4.6
8 months ago

superfly/fly_postgres_elixir is an open source project licensed under Apache License 2.0 which is an OSI approved license.

The primary programming language of fly_postgres_elixir is Elixir.


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com