Skip to main content

InProc vs Remote

Clustron DKV supports two execution modes:

  • In-Process (InProc)
  • Distributed (Remote)

Both modes use the same API and programming model.


The Key Idea​

You can start local and scale to distributed without changing your code.

InProc β†’ Remote  
(no code changes)

This is a core design principle of Clustron.


In-Process (InProc)​

InProc mode runs entirely inside your application.

Application
└── Store (InProc)

Characteristics​

  • No infrastructure required
  • No network communication
  • Extremely fast (in-memory)
  • Ideal for development and testing

When to Use​

  • Local development
  • Unit and integration testing
  • Single-instance applications

Distributed (Remote)​

Remote mode runs the store across multiple nodes.

Machine A β†’ Node 1
Machine B β†’ Node 2
Machine C β†’ Node 3

Characteristics​

  • Runs across machines
  • Enables coordination between instances
  • Provides high availability and scalability
  • Uses network communication

When to Use​

  • Production systems
  • Multi-instance applications
  • Distributed workloads

Same API, Different Execution​

The same code works in both modes:

await client.PutAsync("key", "value");

No changes are required when switching modes.


Configuration-Based Switching​

You can switch modes using configuration:

{
"Mode": "InProc"
}
{
"Mode": "Remote",
"Seeds": [
{ "Host": "localhost", "Port": 7861 }
]
}

What Actually Changes?​

AspectInProcRemote
ExecutionInside applicationAcross nodes
NetworkNoneRequired
SetupNoneInstallation required
ScaleSingle instanceMultiple instances
CoordinationLocalDistributed

Why This Matters​

Most systems force you to choose upfront:

  • Local cache β†’ simple but limited
  • Distributed system β†’ powerful but complex

Clustron lets you:

  • Start simple
  • Scale when needed
  • Keep the same programming model

What’s Next​

πŸ‘‰ Continue to Keys & Values to understand how data is stored