Skip to content

Framework for data access

Surge

The same application code works with a single PostgreSQL server or with many distributed databases. Surge generates the access code at compile time.

Key facts

  • for .NET, with the access code generated at compile time instead of by reflection at runtime
  • compatible with ahead-of-time compilation
  • no memory allocations on the frequently used paths
  • multi-tenant by construction, with separate caches per tenant
  • currently for PostgreSQL via Npgsql

In use

Jump Jupiter accesses its data stores through Surge.

For your projects

What Surge demonstrates, I also deliver in client projects without Surge: data access without runtime overhead, cleanly separated tenants and a database that can be changed without changing the application.

Game clientUnity for Windows, macOS and Linux
Main serverC# and .NET
Simulation serversUnity, one per CPU core
Data storesdistributed, in memory and persistent

My own Kubernetes cluster in Germanywith self-hosted key management and container registry

Architecture of Jump Jupiter, a real-time multiplayer game in development, designed and developed by me.

  • PulseFramework for communication between servers
  • SurgeFramework for data access
  • Direct connection between client and simulation server while a player is in a room.

Tell me about your system

The intro call takes 30 minutes and is free of charge. I reply within 24 hours.