Low Level Documentation
Library Fieldpine Internals Replication Gds Security Fpos.dll Startup logic PosGreen Network PosGreen Install Process Multicast Protocol Data Structures Settings Logic Trace


Security Model Product Distribution Gateways Staff Login Stock Levels Shipping Addresses Agency Stores Remote Reports Sales Handlers

PosGreen Engine This engine provides the bulk of the POS processing at checkouts. It can be used directly or via central servers as a remote service.

Contexts & Sessions


Spill Database Debugging

Reference Data

refdata Country refdata SystemString


Fieldpine uses a distributed database and is capable of continuous operation even in the face of network failure. Any distributed database system must in some way replicate information.

Available Methods

Periodic Refresh

Lanes request complete copies of the data; replacing all existing data

  • Simple and reliable
  • Resets any anomalies

Push on Change

When a change is detected it is immediately queued and sent to all active lanes

  • Lanes have most up to date data
  • Lots of transactional data being shipped

Pull on Demand

When a lane requires information it request it in real time from the server

  • Lanes get most up to date data
  • Need to consider error conditions of server offline or not responding fast enough

Wave Polling

Lanes periodically request the list of changes since their last poll.

  • Lanes data is only accurate as at last polling interval
  • Less traffic and load than periodic refresh

You can use multiple methods at the same time:

  • Combining Push on Change and Pull on Demand - Lanes always query the server but also receive all changes immediately. If the server/network fails, lanes continue with the most recent information they had
  • Combining Poll on Demand and Wave Polling - Lanes always query the server. If the server/network fails, lanes continue with the data from the last wave poll operation

Comparison of Effects

Consider a retail operation with 50 stores. They have a requirement to replicate realtime account balance information. The following table outlines the total load in a one hour period with the Wave Polling interval set to 30 minutes.

Push on ChangePull On DemandWave Polling (30min)
1 change per second 50 x 3600 = 180,000 1800 x 2= 3,600 50 x 2 = 100
1 change per 10 seconds 50 x 360 = 18,000 180 x 2= 720 50 x 2 = 100
1 change per minute 50 x 30 x 2 = 3000 50 x 2 = 100 50 x 2 = 100
1 change per 30 minutes 50 x 30 x 2 = 3000 50 x 2 = 100 50 x 2 = 100
1 change per hour 50 x 0.5 x 2 = 50 50 x 0.5 x 2 = 50 50 x 2 = 100

Additional Servers

Some tables allow you to offload transactional processing to Fieldpine Servers if you wish

Use Fieldpine Encrypted When enabled, Fieldpine receives the data but the payload is encrypted so it cannot be understood. The primary key (typically a Physkey/UUID or simple integer) is NOT encrypted though, as this is required to answer requests.

Use Fieldpine Non-Encrypted When enabled, Fieldpine receives the data and the payload can be read and understood by Fieldpine. The permits Fieldpine to make decisions and work with the data if needed.

Query Fieldpine First When enabled, this instructs lanes to query Fieldpine servers before your servers. This mainly affects normal operation, under error conditions the lanes will query whoever they believe will answer quickest and most accurately.