DarynOngera

DarynOngera

ServCore - a minimal, production-grade server framework for building reliable, observable backend services

Elixir Server Core — Standalone Worker Services in Elixir

I have been learning elixir for a while now and I’ve enjoyed every bit. In my beginner endeavours I built Elixir Server Core as a lightweight, forkable framework for building standalone background-processing services in Elixir as part of my learning journey. This is more of a learning project I have decided to share with the larger community.

It’s meant for situations where you don’t really want the overhead of a full stack like Phoenix, but you still want structure instead of wiring GenServers and queues from scratch every time.

It works well when you need:

  • HTTP endpoints to receive requests
  • A background job queue to process work asynchronously
  • Worker processes managed under OTP supervision
  • Basic durability, retries, and scheduling
  • A simple deployment model for single-purpose services

Instead of repeatedly assembling Phoenix, Oban, and custom infrastructure, this gives you a small, ready-to-run foundation that you can either use directly or fork and shape into your own service.

What it gives you

  • Plug + Cowboy HTTP server
  • OTP-based job queue and worker pool
  • Job lifecycle tracking (queued, running, done, failed)
  • Retry system with exponential backoff
  • Optional job scheduling
  • Pluggable persistence (in-memory, SQLite, or custom stores)
  • Telemetry hooks for observability

What I use it for

  • Small backend services with a single responsibility
  • Background processing workloads (media, documents, webhooks, automation)
  • Lightweight VPS or edge deployments
  • Learning and experimenting with OTP in a real system

What it is not

  • Not a replacement for Phoenix
  • Not a distributed job system like Oban
  • Not a full web application framework

It sits somewhere between “building everything from scratch” and “bringing in a full framework,” giving you a minimal but structured starting point for worker-based services.

Feel free to poke around : hex-package

Most Liked

DarynOngera

DarynOngera

Update: ServCore has moved the HTTP server from Plug.Cowboy to Bandit. Same Plug interface, but with HTTP/2 enabled by default and fewer transitive dependencies. The rest of the framework (job queue, worker pools, SQLite persistence, Telemetry) is unchanged.

Where Next?

Popular in Announcing Top

martinthenth
Hello everybody :wave: Recently, some of my colleagues talked about database ids and uuids and their problems, and I remembered the pain...
New
Crowdhailer
I have been updating a library that allows you to pipe between functions that use the erlang result tuple convention. Assuming you have ...
New
maltoe
Hello! Came here to announce ChromicPDF, a pet project PDF generator I’ve been working on for the past few months. Why another PDF gener...
New
kip
ex_cldr provides localisation and internationalisation support based upon the data from the Unicode CLDR project. Unicode released CLDR ...
407 13014 120
New
blatyo
The best overview for how things are tied together is this presentation. Modules and functions are pretty well documented at this point, ...
New
cjen07
parameterized pipe in elixir: |n> edit: negative index in |n> and mixed usage with |> are supported example: use ParamPipe ...
New
OvermindDL1
Been making an MLElixir thing (not released yet…) for fun in spare time in the past day. I’m just trying to see how much I can get an ML...
132 14057 106
New
scohen
Lexical Lexical is a next-generation language server for the Elixir programming language. Features Context aware code completion As-you...
New
tfwright
After working on it for a couple of months and using it in production for most of that time, today I’ve released LiveAdmin, a LiveView ba...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New

Other popular topics Top

New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41989 114
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31265 143
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement