Back in 2009, we've noticed that the modern software and web was becoming more and more interactive. Being independent video game developers and a passion for online, massively multiplayer games pushed us to create a technology that would suit all our needs.
We wanted to build reliable web services without sacrificing any productivity or performance. Moreover, we wanted a single server to handle thousands of concurrent clients at the same time. This ambition led us to create Spike-Engine.
Spike-Engine is a software platform that facilitates building client-server applications
for .NET developers. In particular, it focuses on real-time and duplex communication, performance and productivity.
The core idea behind Spike-Engine is quite simple. There are 3 core principles underpinning the architecture, duplex communication, performance and code generation.
Duplex Communication. We needed duplex communication, and a connected, stateful mode. Duplex communication simply means that client and the server can both initiate the communication and exchange messages easily, at any time (unlike
HTTP). After all, we wanted to build games and interactive applications!
Performance. We wanted our technology to be performant and handle thousands of clients, and hundreds of thousands of packets per second. This proved to be very challenging to achieve and took 3 years to polish and to find a balance
between flexibility, API and performance. Even better, good performance also saves cost, since we did not need to buy large servers with massive amount of bandwith and we could cut our costs.
Code Generation. As most of you, we are a small and agile team. This means we needed to do things smart and be able to stay productive while building high quality, heteregeneous software. From the very beginning, we designed our technology
to help us by generating automatically most of the networking code, while we could concentrate on actually implementing the business logic.